linux下实时监测tomcat关闭并启动

linux下tomcat总是会无故出现自动关闭的情况,在暂时无法解决该问题时,就需要一个东西能实时监测tomcat是否还正常的运行,若发现已关闭时,执行启动命令。

我们可以添加一个shell脚本来实现监测和启动功能:

 1 # DEFINE  
 2  
 3 # 获取tomcat进程ID  
 4 TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-5.5.23'|grep -v 'grep'|awk '{print $2}')  
 5  
 6 # tomcat启动程序(这里注意tomcat实际安装的路径)  
 7 StartTomcat=/usr/local/tomcat/bin/startup.sh  
 8 TomcatCache=/usr/local/tomcat/work  
 9  
10 # 定义要监控的页面地址   
11 WebUrl=http://localhost:8080/
12  
13 # 日志输出  
14 GetPageInfo=/www/logs/tomcatrestart/TomcatMonitor.Info  
15 TomcatMonitorLog=/www/logs/tomcatrestart/TomcatMonitor.log  
16  
17 Monitor()  
18 {  
19   echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"  
20   if [ $TomcatID ];then  # 这里判断TOMCAT进程是否存在  
21      echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."  
22      # 检测是否启动成功(成功的话页面会返回状态"200")  
23      TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})  
24      if [ $TomcatServiceCode -eq 200 ];then  
25         echo "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常......"  
26      else  
27         echo "[error]tomcat页面出错,请注意......状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"  
28         echo "[error]页面访问出错,开始重启tomcat"  
29         kill -9 $TomcatID   # 杀掉原tomcat进程  
30         sleep 3  
31         rm -rf $TomcatCache # 清理tomcat缓存  
32         $StartTomcat  
33      fi  
34   else  
35      echo "[error]tomcat进程不存在!tomcat开始自动重启..."  
36      echo "[info]$StartTomcat,请稍候......"  
37      rm -rf $TomcatCache  
38      $StartTomcat   
39   fi  
40   echo "------------------------------"  
41 }  
42 Monitor >>$TomcatMonitorLog

接下来可以使用crontab将脚本加入定时任务中,只需在terminal中输入以下:

1 crontab -e
2 1 * * * * /tomcat-restart.sh

输入crontab -e命令后,回车,接下来的使用方式就如同执行vi命令是一样的,想要输入时,单击【i】,输入完成后单击【Esc】,输入:wq即可保存输入。

此时,执行service crond restart;命令,即可执行脚本。

上面,我设置每过1分钟就要执行一次脚本。

原文地址:https://www.cnblogs.com/fanelephant/p/3993230.html