天天看點

程式釋出shell腳本

#!/bin/bash

Port="8080"

BaseDir=/opt/build/workspace/www.why.cn/svn/target/why/

ConfigDir=/opt/build/workspace/www.why.cn/svn/configs

>/root/scripts/info.log

>/tmp/outprint-${Port}.log

rsync -vzrtopgl --delete --exclude .svn  $ConfigDir/log4j.properties /opt/tomcat-8080/webapps/why/WEB-INF/classes/log4j.properties

rsync -vzrtopgl --delete --exclude .svn  $ConfigDir/pro.properties /opt/tomcat-8080/webapps/why/WEB-INF/classes/pro.properties

rsync -vzrtopgl --delete --exclude .svn  $ConfigDir/jdbc.properties /opt/tomcat-8080/webapps/why/WEB-INF/classes/jdbc.properties

rsync -vzrtopgl --delete --exclude .svn  $ConfigDir/web.xml /opt/tomcat-8080/webapps/why/WEB-INF/web.xml

rsync -vzrtopgl --delete --exclude .svn  $ConfigDir/common.js /opt/tomcat-8080/webapps/why/STATIC/js/common.js

rsync -vzrtopgl --delete --exclude pro.properties --exclude jdbc.properties --exclude log4j.properties   --exclude web.xml --exclude common.js ${BaseDir} /opt/tomcat-8080/webapps/why/

[ $? -ne 0 ] && {

rm -rf $BaseDir/*

echo "釋出失敗,請檢查!!"

pkill tail

exit 2

}

/usr/sbin/tomcat-8080 restart;tail -f /opt/tomcat-8080/logs/catalina.out  >>/tmp/outprint-${Port}.log &

        times=0

        while true;do

           #定義通過curl指令擷取網頁狀态碼的個數

           crul_num=`curl -Is http://192.168.5.116:8080/frontIndex/index.do --connect-timeout 5 -m 5|head -n1|awk '{print $2}'|wc -l`

           #當傳回值個數為0且經過20s時間後就判斷此次釋出失敗,打開網頁逾時,直接退出。

           [ ${crul_num} -eq 0 -a $times -eq 20 ] && {

           echo "tomcat-${Port}: 項目已經釋出,但網頁打開逾時,不能繼續,請檢查!!" >>/root/scripts/info.log

           cat /root/scripts/info.log

           echo -e "\n\n\n\n###################錯誤日志如下##################\n\n\n\n"

           sleep 2

           tail -n 500 /tmp/outprint-${Port}.log

           pkill tail

           exit 2

           }

           #定義了當擷取網頁狀态碼為0數的話就将時間增加1秒,直到上面的等于20就退出。

           [ ${crul_num} -eq 0 ] && {

                         let times++

                         sleep 1

                         continue

           #從上面可獲知狀态碼個數不為0,現在定義狀态碼的值是否為200,不為200就直接退出.

           crul_flags=`curl -Is http://192.168.5.116:8080/frontIndex/index.do|head -n1|awk '{print $2}'`

           [ ${crul_flags} -ne 200 ]&&{

           exit 3 

           #通過上面的判斷,頁面可以正常打開,釋出正常,現将執行個體添加到nginx并重新加載。

           echo "tomcat-${Port}: 釋出成功!!" >>/root/scripts/info.log

           break

        done

#rm -rf $BaseDir/*