之前在網上查的腳本運行總是無法正常監測,后面改了一些東西后才正常,現在記錄希望對大家有所幫助。
#!/bin/sh
source /etc/profile
TomcatID=$(ps -ef |grep zhkh_dwn |grep -w 'zhkh_dwn'|grep -v 'grep'|awk '{print $2}')
StartTomcat=/home/tomcat/bin/startup.sh
EndTomcat=/home/tomcat/bin/shutdown.sh
TomcatCache=/home/tomcat/work
WebUrl=http://172.16.20.112:8082/mypreject/loginController.do?login
GetPageInfo=/root/TomcatMonitor_DW.Info
TomcatMonitorLog=/root/TomcatMonitor_DW.log
Monitor()
{
echo "[info]開始監控tomcat...[$(date +'%F %H:%M:%S')]"
if [ $TomcatID ];then #這里判斷Tomcat進程是否存在
echo "[info]當前tomcat進程ID為:$TomcatID,繼續檢測頁面..."
TomcatServiceCode=$(curl -s -o $GetPageInfo --connect-timeout 10 $WebUrl -w %{http_code} --noproxy "*")
if [ $TomcatServiceCode == 200 ];then
echo "[info]頁面返回碼為:$TomcatServiceCode,tomcat啟動成功,測試頁面正常"
else
echo "[error]tomcat頁面出錯,狀態碼為:$TomcatServiceCode,錯誤日志已輸出到:$GetPageInfo"
echo "[error] 頁面訪問出錯,開始重啟tomcat"
kill -9 $TomcatID # 殺掉原tomcat進程
sleep 3
rm -rf $TomcatCache # 清理tomcat緩存
$StartTomcat
fi
else
echo "[error]tomcat進程不存在!tomcat開始自動重啟..."
echo "[info]$StartTomcat,請稍候... "
rm -rf $TomcatCache
$StartTomcat
fi
echo "--------------------------"
}
Monitor>>$TomcatMonitorLog
修改位置:1.加上環境加載:source /etc/profile
2.if [ $TomcatServiceCode == 200 ];then 中 '-eq' 改成了'=='
