標籤:tomcat監控
前景描述,公司要求,在Linux Centos 伺服器下,監控tomcat狀態,如果tomcat連接埠不通,設定tomcat程式自動啟動。20分鐘檢查一次。
tomcat安裝的目錄:/home/test/tomcat6/bin
#!/bin/bash
echo "Start"
URL="http://127.0.0.1/###/"
curlit()
{
#echo "??"
curl --connect-timeout 15 --max-time 20 --head --silent "$URL" | grep ‘200‘
# 上面的15是連線逾時時間,若訪問localhost的HTTP服務超過15s仍然沒有正確響應200頭代碼,則判斷為無法訪問。
}
doit()
{
if ! curlit; then
# 如果localhost的apache服務沒有正常返回200頭,即出現異常。執行下述命令:
# echo "TD"
sleep 20
#top -n 1 -b >> /var/log/log.log
kill `ps -ef|grep java|grep -v grep |awk ‘{print $2}‘` > /dev/null 2>&1
# 這條語句中ps -ef|grep java|grep -v grep為查詢進程中java進程同時排除本身語句,用awk找到第二列資訊,返回狀態扔到黑洞中。
sleep 2
cd /tomcat-6.0.29/bin/ #tomcat安裝的路徑
/bin/sh startup.sh
#echo "EN"
echo $(date) “Tomcat Restart” >> /var/log/log.log
# 寫入日誌
sleep 60
# 重啟完成後等待,然後再次嘗試一次
if ! curlit; then
# 如果仍然無法訪問,則:
echo "@"
echo $(date) “Failed!” >> /var/log/log.log
# 寫入apache依然重啟失效的日誌
fi
sleep 180
fi
}
sleep 3
# 運行指令碼後才開始正式工作(防止重啟伺服器後由於tomcat還沒開始啟動造成誤判)
# 主迴圈體
doit
我的指令碼:
#!/bin/bash
echo "Start"
URL="http://127.0.0.1:8080/"
curlit()
{
#echo "??"
curl --connect-timeout 15 --max-time 20 --head --silent "$URL" | grep ‘200‘
}
doit()
{
if ! curlit; then
# echo "TD"
sleep 20
#top -n 1 -b >> /var/log/log.log
kill `ps -ef|grep java|grep -v grep |awk ‘{print $2}‘` > /dev/null 2>&1
sleep 2
cd /home/test/tomcat6/bin/
/bin/sh startup.sh
#echo "EN"
echo $(date) “Tomcat Restart” >> /var/log/log.log
sleep 60
if ! curlit; then
echo "@"
echo $(date) “Failed!” >> /var/log/log.log
fi
sleep 180
fi
}
sleep 3
doit
上面是指令碼,建立指令碼要在Linux下建立,步驟是:
1,用root帳號進入
2,編寫指令碼
#touch jiankong1.sh
#vim jiankong1.sh
把上面的指令碼複製到這個sh檔案裡面。
3,給指令碼設定執行許可權
chmod 700 jiankong1.sh
4,計劃任務中添加該執行任務:
#crontab -e 按i進入編輯,和vim用法一樣
輸入:*/20 * * * * /home/jiankong1.sh
:wq!
5,檢查執行任務中的程式
#crontab -l
本文出自 “ghost” 部落格,請務必保留此出處http://fangwei009.blog.51cto.com/5234706/1632257
Linux下設定指令碼監控tomcat