小麥是一名開發人員,天天寫完代碼後,都要打包部署到集成環境,而後等着測試人員測試,測試人員提出bug時,小麥懊惱的修改着bug,而後修改代碼,從新提交SVN,從新打包,上傳到集成服務器,而後重啓服務器,這麼重複的工做,小麥忍不了了,決定化繁爲簡。linux
小麥想着最近本身一直在學linux shell編程,是時候展現一波真正的技術了。剛學到新的命令:rz,小麥躍躍欲試。小麥一想,有了rz命令,不再用點那個該死的Xftp了。可是啓停服務器仍是得執行兩次命令,這個xshell能不能一次兩臺服務器一塊兒搞啊,立馬百度了下,還真有發送命令到全部會話,如圖:web
小麥立馬開工,同時殺掉兩臺服務器Tomcat進程,而後rz上傳最新打的包,而後從新啓動Tomcat。
shell
小麥邊敲代碼邊想,這樣仍是囉嗦,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.shtomcat
小麥如今扔掉了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編譯打包項目完成......'app
小麥高興的眯着眼,這回只要本地更新代碼測試後,提交svn,測試環境一個腳本就能夠直接從新發布服務了。webapp