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

来源:互联网 发布:凯立德v4.0端口查看器 编辑:程序博客网 时间:2024/05/30 12:30

场景:有的时候tomcat下的应用性能不佳或者其他原因,导致tomcat运行一段时间后,因多并发响应或者其他原因,会自动停掉,为了防止替程序员背锅,可以通过定时检查相关服务是否正常启动,没有启动写入日志,并重启该服务,暂时缓解应用方面的缺陷,尤其是外包的应用,质量一般的应用。

解决方案:
1、编写脚本 监听给服务的端口,是否正常运行。如果正常,则记录当前服务正常并记录日志中, 如果 该端口 无法监听,则判断此服务异常,尝试重启该服务并记录到日志。
2、启用crond, 设置crontab ,定时执行该脚本。

具体代码如下:

  1、shell脚本:
#!/bin/bash# Program:#  look the port and service is good# History:#2016-06-11  mcw  firstPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATH#netstat this tomcat is port ,if port ok ,log is ok, else restart this tomcat and log is restarttesting=$(netstat -tuln |grep ":8081")  #监听端口if [ "$testing" != "" ]; thenecho $(date)"tomcat-dzp is running in your system" >> /data0/logs/dzp.txtelsesh /usr/local/apache-tomcat-6.0.35/bin/startup.sh && echo  $(date)" tomcat-dzp is error and restart it" >>/data0/logs/dzp.txtfi

2、启动 crond服务

    service  crond start        crontab -e        #设置        */10 * * * * sh /data0/check/checkdzp.sh    #每10分钟检查一次
0 0