Shell腳本自動重啟Java服務


話不多說直接上代碼:

cd /home/javaProduct/
if
[ -d '/home/javaProduct/lib_new/' ]; then
echo 'Has New Lib!'
echo '--------------Begin Stop JavaService----------------'
edocid=$(jps |grep JavaService | awk '{print $1}')
echo $edocid
kill -9 $edocid
echo '--------------Begin Move Lib------------------------'
mv /home/javaProduct/lib/ /home/javaProduct/lib_prev
echo '--------------End Move Lib--------------------------'
echo '--------------Begin Move Lib_New--------------------'
mv /home/javaProduct/lib_new/ /home/javaProduct/lib/
echo '--------------End Move Lib_New----------------------'
echo '--------------Begin Start Service-------------------'
nohup ./appServer.sh start
echo '--------------End Start Service---------------------'
echo '--------------Begin Move Lib_Prev-------------------'
time2=$(date "+%Y%m%d%H%M%S")
hislib1='/home/javaProduct/lib_'
hislib2=$hislib1$time2
mv /home/javaProduct/lib_prev/ $hislib2
echo '--------------End Move Lib_Prev---------------------'
echo '--------------End Stop JavaService------------------'
else
echo 'No Lib_New'
fi

另外這里還要提到dos2unix來將windows編寫shell腳本轉換為Linux的,要不上傳上去不能用。

由於在DOS(windows系統)下,文本文件的換行符為CRLF,而在Linux下換行符為LF,使用git進行代碼管理時,git會自動進行CRLF和LF之間的轉換,這個我們不用操心。而有時候,我們需要將windows下的文件上傳到linux上,例如shell腳本,執行的時候有時會出現奇怪的問題,這時候,就需要安裝dos2unix軟件,centos下:

yum install -y dos2unix

安裝完成后,對文件進行轉換

dos2unix abc.sh

現在執行就不會出問題了

補充,自動重啟Tomcat的腳本

cd /home/edocProduct/tomcat/bin
if [ -f "/home/edocProduct/tomcat/webapps/ROOT.war.new" ]; then
    echo "Has New War!"
    echo "------------Begin Stop Tomcat---------------"
    for i in $(ps -ef|grep tomcat | awk '{print $3"+"$2}');
    do
        if [ ${i%+*} = "1" ]; then
            echo $i
            echo ${i#*+}
            kill -9 ${i#*+}
            echo "---------------------Begin Move ROOT.war-----------------------"
            mv /home/edocProduct/tomcat/webapps/ROOT.war /home/edocProduct/tomcat/webapps/ROOT.war.prev
            echo "---------------------End Move ROOT.war-------------------------"
            echo "---------------------Begin Move ROOT.war.new-------------------"
            mv /home/edocProduct/tomcat/webapps/ROOT.war.new /home/edocProduct/tomcat/webapps/ROOT.war
            echo "---------------------End Move ROOT.war.new---------------------"
            echo "---------------------Begin Start Tomcat------------------------"
            nohup ./startup.sh
            echo "---------------------End Start Tomcat--------------------------"
            echo "---------------------Begin Move ROOT.prev----------------------"
            time2=$(date "+%Y%m%d%H%M%S")
            hislib1='/home/edocProduct/tomcat/webapps/ROOT.war'
            hislib2=$hislib1$time2
            mv /home/edocProduct/tomcat/webapps/ROOT.war.prev $hislib2
            echo "---------------------End Move ROOT.war.prev--------------------"
            echo "---------------------End Stop Tomcat---------------------------"
        fi
    done;
else
    echo 'No ROOT.war.new'
fi

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM