自动化部署脚本(windows上传到linux)

先介绍两个工具,PUTTY和WINSCP。linux

 

  PUTTY是一个不经常使用的,能够在windows平台经过ssh链接到linux的工具。好处是这个工具特别小,免安装。但是功能不强(语法高亮这点就够了)。因此并不经常使用。(经常使用的是secureCRT &xshell)然而,putty在windows平台能够经过命令行的形式执行。通常putty会做为脚本工具使用的。git

 

  WINSCP是一个windows平台下,经过ssh协议复制东西到linux服务器的工具。也支持命令行的形式。web

 

  脚本逻辑是这样的:shell

  • 打包
  • 打包结果上传到服务器
  • 服务器处理(部署、重启服务器)

 

一、打包。windows

例如maven打包,并且打包后不自动退出。(文件后缀是bat)tomcat

call mvn clean package -U -Dmaven.test.skip=true

 

二、上传到服务器。服务器

用winscp,执行脚本。参考以下:app

--打开控制台
WinSCP.exe /script="E:\eclipse_mars_workspace\singleBbs\autoUpdate\updateLoadScript.sh"

uploadLoadScript的内容参考:eclipse

--链接服务器,上传文件
open sftp://account:password@ip:port
put E:\eclipse_mars_workspace\singleBbs\target\singleBbs.war
exit

put一个文件到用户下的根目录ssh

 

三、服务器上处理(替换、重启)

在bat脚本中,经过putty登陆,而且执行服务器脚本

PUTTY.EXE -ssh -pw password account@ip -m serverScript.sh

 

关闭tomcat,部署,启动tomcat。

复制代码

/root/tomcat7/tomcat7/bin/catalina.sh stop
sleep 1
rm /root/tomcat7/tomcat7/webapps/singleBbs.war
rm -r /root/tomcat7/tomcat7/webapps/singleBbs
cp ~/singleBbs.war /root/tomcat7/tomcat7/webapps/singleBbs.war
/root/tomcat7/tomcat7/bin/catalina.sh start
sleep 1
rm ~/singleBbs.war
exit

复制代码

 

 

后记

  一开始考我是虑用git的钩子实现。大概逻辑是:提交代码到git,git打标签的时候触发钩子从而打包、部署

  这样子作坏处是服务器要安装gitlab(钩子嘛),maven。好处是有版本策略能够跟踪代码部署的状况。其实,不少大厂都是这样方式实现的。不过做为我的开发、研发环境,仍是经过复制的方式部署更轻量。

相关文章
相关标签/搜索