天天看點

linux下tomcat監控腳本

#定義要監控的頁面位址

WebUrl=localhost:8080

# 日志輸出

GetPageInfo=/tmp/TomcatMonitor.Info

TomcatMonitorLog=/tmp/TomcatMonitor.log

#擷取tomcat程序

TomcatID=$(ps -ef |grep tomcat |grep -v grep | awk '{print $2}')

TomcatServiceCode=`curl -o /dev/null -s -w "%{http_code}" "${WebUrl}"`

#發送郵件位址

email_address=********@qq.com

#目前伺服器ip

IP=$(ifconfig -a|awk '/(cast)/ {print $2}'|cut -d':' -f2|head -1)

# tomcat啟動程式(tomcat實際安裝的路徑)

StartTomcat=/homej-tomcat/bin/startup.sh

#tomcat的緩存

TomcatCache=/homej-tomcat/work

echo tomcat_ID:"$TomcatID"

echo TomcatStatus:"$TomcatServiceCode"

Monitor()

{

 echo "[info]開始監控tomcat...[$(date +'%F %H:%M:%S')]"

   # 這裡判斷TOMCAT程序是否存在

  if [ $TomcatID ] ; then  

   echo "[info]目前tomcat程序ID為:$TomcatID,繼續檢測頁面..."

   # 檢測是否啟動成功(成功的話頁面會傳回狀态"200")

if [ $TomcatServiceCode -eq 200 ] ; then

        echo "[info]頁面傳回碼為$TomcatServiceCode,tomcat啟動成功,測試頁面正常......"

else

        echo "[error]tomcat頁面出錯,狀态碼為$TomcatServiceCode,錯誤日志已輸出到$GetPageInfo"

        echo "[error]頁面通路出錯,開始重新開機tomcat"

echo "[error]發送告警開啟郵件"  

        #echo "$IP的通路系統接口出錯,$IP的tomcat開始自動重新開機 [$(date +'%F %H:%M:%S')]" | mail -s "魔售項目告警開啟" $email_address

        # kill -9 $TomcatID  # 殺掉原tomcat程序

        # sleep 3

        # rm -rf $TomcatCache # 清理tomcat緩存

        $StartTomcat

fi

    else

    echo "[error]tomcat程序不存在!tomcat開始自動重新開機..."

    echo "[info]$StartTomcat,請稍候......"

    echo "[error]發送告警開啟郵件"  

    #echo "由于$IP的tomcat程序不存在 tomcat開始自動重新開機 [$(date +'%F %H:%M:%S')]" | mail -s "項目告警開啟" $email_address

    rm -rf $TomcatCache

    $StartTomcat 

  fi

 echo "------------------------------"

}

Monitor>>$TomcatMonitorLog