#定義要監控的頁面位址
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