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

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

3693cc3cdd2a7dd7cf860b3630f1e213.png

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

faa1fce77f54f823717e8b9400b7bfb3.png

脚本逻辑是这样的:

打包

打包结果上传到服务器

服务器处理(部署、重启服务器)

1、打包。

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

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

2、上传到服务器。

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

--打开控制台

WinSCP.exe /script="E:\eclipse_mars_workspace\singleBbs\autoUpdate\updateLoadScript.sh"

uploadLoadScript的内容参考:

--连接服务器,上传文件

open sftp://account:password@ip:port

put E:\eclipse_mars_workspace\singleBbs\target\singleBbs.war

exit

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

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

在bat脚本中,通过putty登录,并且执行服务器脚本

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

关闭tomcat,部署,启动tomcat。

69c5a8ac3fa60e0848d784a6dd461da6.png

/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

69c5a8ac3fa60e0848d784a6dd461da6.png

后记

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

这样子做坏处是服务器要安装gitlab(钩子嘛),maven。好处是有版本策略可以跟踪代码部署的情况。其实,很多大厂都是这样方式实现的。不过作为个人开发、研发环境,还是通过复制的方式部署更轻量。

Logo

一站式 AI 云服务平台

更多推荐