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分钟就要执行一次脚本。

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/6318.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论