小麥是一名開發人員,每天寫完代碼后,都要打包部署到集成環境,然后等着測試人員測試,測試人員提出bug時,小麥懊惱的修改着bug,然后修改代碼,重新提交SVN,重新打包,上傳到集成服務器,然后重啟服務器,這么重復的工作,小麥忍不了了,決定化繁為簡。
小麥想着最近自己一直在學linux shell編程,是時候展示一波真正的技術了。剛學到新的命令:rz,小麥躍躍欲試。小麥一想,有了rz命令,再也不用點那個該死的Xftp了。但是啟停服務器還是得執行兩次命令,這個xshell能不能一次兩台服務器一起搞啊,立馬百度了下,還真有發送命令到所有會話,如圖:

小麥立馬開工,同時殺掉兩台服務器Tomcat進程,然后rz上傳最新打的包,然后重新啟動Tomcat。
小麥邊敲代碼邊想,這樣還是啰嗦,Tomcat我憑什么執行一次停止,一次啟動,寫一個腳本自停自啟好了。但是停止進程后,我還需要上傳包才行,怎么辦?忽然測試說,圖片服務器的圖片無法展示,小麥一看,最新的圖片還沒上傳到圖片服務器,立馬將圖片上傳圖片服務器。突然眼前一亮,我先把打好的包放到一個路徑下,然后寫一個腳本,停止Tomcat進程后,把最新的包mv到指定目錄下,然后重啟不就ok了,哈哈,說干就干。
#找到tomcat進程id
$p_tomcat = jps -v | grep tomcat8.5/ | awk -F ' ' '{printf $1}'
#殺死進程
kill -9 $p_tomcat
#上傳war包目錄
d_xiaomai=/app/xiaomai/
#tomcat目錄
tomcat=/app/tomcat8.5
#清除tomcat項目
rm -rf $tomcat/webapps/apollo*
#移動包到tomcat下
mv $d_xiaomai/apollo.war $tomcat/webapps/apollo.war
#重啟tomcat
$tomcat/bin/startup.sh
小麥現在扔掉了xftp,然后同時操作兩台服務器,用腳本重新發布。試了一下,沒什么問題,小麥竊喜。不一會,測試又來找小麥了,又發現了一個bug,小麥高興的臉又陰沉下去,再次回到idea修改代碼,然后重新發布。小麥越想越不爽,我提交完代碼,測試環境直接更新打包部署就好了,我為啥還要一次次上傳,本地打好包,再上傳服務器,服務器自己打包不就好了,小麥開始盤算怎么再智能一些。小麥嘴里念叨着:我需要一個svn,然后再來一個maven,完全ok,說完立馬在測試環境安裝了svn,maven,然后修改腳本代碼,再次敲擊起鍵盤。
#svn指定目錄
d_xiaomai=/app/xiaomai/
#切換到svn目錄
cd $d_xiaomai
#指定svn目錄下更新
svn up
echo 'SVN更新項目完成......'
#maven打包
mvn clean package -Dmaven.test.skip=true
echo 'Maven編譯打包項目完成......'
小麥高興的眯着眼,這回只要本地更新代碼測試后,提交svn,測試環境一個腳本就可以直接重新發布服務了。完