場景:有的時候tomcat下的應用性能不佳或者其他原因,導致tomcat運行一段時間後,因多併發響應或者其他原因,會自動停掉,爲了防止替程序員背鍋,可以通過定時檢查相關服務是否正常啓動,沒有啓動寫入日誌,並重啓該服務,暫時緩解應用方面的缺陷,尤其是外包的應用,質量一般的應用。
解決方案:
1、編寫腳本 監聽給服務的端口,是否正常運行。如果正常,則記錄當前服務正常並記錄日誌中, 如果 該端口 無法監聽,則判斷此服務異常,嘗試重啓該服務並記錄到日誌。
2、啓用crond, 設置crontab ,定時執行該腳本。
具體代碼如下:
1、shell腳本:
#!/bin/bash
# Program:
# look the port and service is good
# History:
#2016-06-11 mcw first
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#netstat this tomcat is port ,if port ok ,log is ok, else restart this tomcat and log is restart
testing=$(netstat -tuln |grep ":8081") #監聽端口
if [ "$testing" != "" ]; then
echo $(date)"tomcat-dzp is running in your system" >> /data0/logs/dzp.txt
else
sh /usr/local/apache-tomcat-6.0.35/bin/startup.sh && echo $(date)" tomcat-dzp is error and restart it" >>/data0/logs/dzp.txt
fi
2、啓動 crond服務
service crond start
crontab -e
#設置
*/10 * * * * sh /data0/check/checkdzp.sh #每10分鐘檢查一次