Tomcat自動檢測和重啓腳本(Linux)

該腳本建議放在tomcat所在服務器上,新建/root/script目錄,腳本放在該目錄。

不過因網絡、硬件或系統嚴重故障導致郵件無法通知。腳本某些功能可以去除,放在其它服務器僅做爲監控或重啓Tomcat也可以。

    #/bin/bash  
    #############################################  
    # author zhao yanan  
    # date 2010/08/23  
    # update 2011/01/10  
    # Automatic detection and restart tomcat  
    #############################################  
     
    #腳本可寫入到自動任務中,執行週期可根據tomcat起停時間長短來定,如下,每天0點到20點之間每隔10分鐘檢查一次  
    #echo "*/10 0-20 * * * root /root/script/tomcat_check.sh  >> /root/script/tomcat_check.log 2>&1" >> /etc/crontab  
     
    echo ========================================  
    date 
    cd /root/script  
    rm -f index.html                                              #刪除之前已下載的首頁  
    wget -T 10 -t 3 -q http://XXX.XXX.XXX.XXX/index.html          #下載首頁,失敗後最多償試3次,每次間隔10秒  
     
    if [ ! -e index.html ]; then                                  #判斷首頁是否下載成功,如果失敗,則執行接下來的任務,否則執行else後的任務。  
    #   java Environment variables                                #設置jdk的環境變量,根據自已的實際情況設定  
        export JAVA_HOME=/opt/jdk1.6.0_21  
        export CLASSPATH=.:$JAVA_HOME/lib/tools.jar  
        export CATALINA_HOME=/opt/apache-tomcat-6.0.26  
        export PATH=$JAVA_HOME/bin:$PATH  
     
        echo "restart tomcat." 
        ${CATALINA_HOME}/bin/shutdown.sh                          #關閉tomcat  
        sleep 150                                                 #等待tomcat關閉,一般是1~150s不等  
        kill -9 `ps aux|grep "/usr/local/tomcat"|grep -v grep|awk '{print $2}'`  #等待時間結束後,償試強制結束tomcat進程  
        sleep 5  
        ${CATALINA_HOME}/bin/startup.sh  
        sleep 5                                                   #等待tomcat啓動,一般是1~150s不等  
    /usr/sbin/sendmail -t <<EOF                                   #發送郵件通知,以下項前面請不要添加空格,生產使用時請刪除此註釋  
    From: web server <root@localhost>                             #郵件發件人,生產使用時請刪除此註釋  
    To: [email protected]                                        #主送郵件地址,注意,大部分郵件接收服務器不接受沒有fully-qualified的郵件,一般會失敗,生產使用時請刪除此註釋  
    Cc: [email protected]                                        #抄送郵件地址,生產使用時請刪除此註釋  
    Subject: Alarm:tomcat restart                                 #郵件標題,生產使用時請刪除此註釋  
    ----------------------------------                            #郵件內容,生產使用時請刪除此註釋  
    In just restarted tomcat.  
    ----------------------------------  
    EOF                                                           #該符號前面不能有空格,生產使用時請刪除此註釋  
    else 
        echo "checked."                                           #首頁下載成功,提示已檢查  
    fi

 


 附件中的腳本文件是有DOS換行符(CR/LF)的,複製文件中的內容到SSH客戶端沒有問題,如果直接拷貝文件到Linux系統中,可先運行下面的命令:

mv example_tomcat_check.txt example_tomcat_check.sh
dos2unix  example_tomcat_check.sh


原文:http://www.zhaoyanan.cn/linux-tomcat-automatically-detect-and-restart-script.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章