使用crontab和shell定时自动检查tomcat是否正常启用

场景:有的时候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分钟检查一次
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章