先介紹兩個工具,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。好處是有版本策略能夠跟蹤代碼部署的狀況。其實,不少大廠都是這樣方式實現的。不過做爲我的開發、研發環境,仍是經過複製的方式部署更輕量。