天天看點

小麥的自動化部署腳本之路(java)

小麥是一名開發人員,每天寫完代碼後,都要打包部署到內建環境,然後等着測試人員測試,測試人員提出bug時,小麥懊惱的修改着bug,然後修改代碼,重新送出svn,重新打包,上傳到內建伺服器,然後重新開機伺服器,這麼重複的工作,小麥忍不了了,決定化繁為簡。

小麥想着最近自己一直在學linux shell程式設計,是時候展示一波真正的技術了。剛學到新的指令:rz,小麥躍躍欲試。小麥一想,有了rz指令,再也不用點那個該死的xftp了。但是啟停伺服器還是得執行兩次指令,這個xshell能不能一次兩台伺服器一起搞啊,立馬百度了下,還真有發送指令到所有會話,如圖:

小麥的自動化部署腳本之路(java)

小麥立馬開工,同時殺掉兩台伺服器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指定目錄

#切換到svn目錄

cd $d_xiaomai

#指定svn目錄下更新

svn up

echo 'svn更新項目完成......'

#maven打包

mvn clean package -dmaven.test.skip=true

echo 'maven編譯打包項目完成......'

小麥高興的眯着眼,這回隻要本地更新代碼測試後,送出svn,測試環境一個腳本就可以直接重新釋出服務了。