1. 程式人生 > >shell指令碼自動部署tomcat專案

shell指令碼自動部署tomcat專案

自動部署shell指令碼由4個方法組成: deploy_backup(版本備份)、deploy_unzip(自動解壓新版本)、deploy_restart(重啟tomcat)、deploy_Rollback(版本回滾),當然,每個方法可以獨立執行,此處在開始執行指令碼時給出了2個選擇,0:版本回滾,其他任意輸入會自動部署新的版本包並重啟tomcat。shell指令碼程式碼如下:

#!/bin/bash  
deploy installation script By clinva 2015.08.28  


#版本部署路徑  
mainpath=/home/emalls1/qdone/pcv2  



#備份版本包  
deploy_backup() { cd ${mainpath}/tomcat8/webapps/; tar -zcvf epc_`date +%y%m%d%H%M%S`.tar.gz epc; sleep 3 ls; mv *.tar.gz ${mainpath}/backup/; } #解壓版本包 deploy_unzip() { cd ${mainpath}; ls; sleep 3; #unzip -l *.zip; unzip -o -d ./tomcat8/webapps/epc pc.zip; sleep 3; } #重啟tomcat
deploy_restart() { cd ${mainpath}/tomcat8/bin; pid1=`ps -ef|grep emalls1 |grep pcv2 |grep tomcat8 |grep qdone |awk '{print $2}'` echo $pid1 if [ -z $pid1 ]; then echo "not exist" ./startup.sh; tailf ./../logs/catalina.out exit 1 else echo "restarting tomcat1"
kill -9 $pid1 sleep 5 ./startup.sh; tailf ./../logs/catalina.out fi } #版本回滾 deploy_Rollback() { #進入備份資料夾 cd ${mainpath}/backup/ #獲取最新備份檔案 file_name_new='' for i in `ls -tr`; do echo $i; file_name_new=$i; done; #將備份檔案複製到webapps cp ${mainpath}/backup/${file_name_new} ${mainpath}/tomcat8/webapps if [ $? -eq 0 ] then echo 複製${file_name_new}成功 else echo 複製失敗,退出! exit 1 fi #進入webapps/目錄 cd ${mainpath}/tomcat8/webapps #解壓檔案 echo 正在解壓,請稍後... tar -zxvf ${file_name_new} #重啟tomcat deploy_restart } echo --------歡迎使用shell自動部署指令碼-------- echo -e "請輸入對應的操作編號:\n0.版本包回滾;\n其他鍵.一件部署;" #獲取使用者操作 read wm2 case $wm2 in 0) deploy_Rollback ;; *) deploy_backup deploy_unzip deploy_restart ;; esac