shell指令碼自動部署tomcat專案
阿新 • • 發佈:2019-01-28
自動部署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