Shell 定时5分钟一次监控Tomcat状态,自动重启

前端之家收集整理的这篇文章主要介绍了Shell 定时5分钟一次监控Tomcat状态,自动重启前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

公司测试服里有很多个tomcat,我参与的项目的那台tomcat,一天会挂上好几次。

监控系统一直发邮件,觉得实在烦,就写了个监控tomcat的脚本放上去跑。等过两天有空了再去研究tomcat挂掉的原因。

先贴上Shell代码

[plain] view plain copy
  1. #!/bin/sh
  2. #function:自动监控tomcat进程,挂了就执行重启操作
  3. #author:huanghong
  4. #DEFINE
  5. #获取tomcatPPID
  6. TomcatID=$(ps-ef|greptomcat|grep-w'tomcat_cardniu_stat'|grep-v'grep'|awk'{print$2}')
  7. #tomcat_startup
  8. StartTomcat=/usr/local/tomcat-6.0.41/tomcat_cardniu_stat/bin/startup.sh
  9. #TomcatCache=/usr/apache-tomcat-5.5.23/work
  10. #定义要监控的页面地址
  11. WebUrl=http://test.cardniu.com/stat-cardniu/login
  12. #日志输出
  13. GetPageInfo=/dev/null
  14. TomcatMonitorLog=/tmp/TomcatMonitor.log
  15. Monitor()
  16. {
  17. echo"[info]开始监控tomcat...[$(date+'%F%H:%M:%S')]"
  18. if[$TomcatID];then
  19. echo"[info]tomcat进程ID为:$TomcatID."
  20. #获取返回状态码
  21. TomcatServiceCode=$(curl-s-o$GetPageInfo-m10--connect-timeout10$WebUrl-w%{http_code})
  22. if[$TomcatServiceCode-eq200];then
  23. echo"[info]返回码为$TomcatServiceCode,tomcat启动成功,页面正常."
  24. else
  25. echo"[error]访问出错,状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
  26. echo"[error]开始重启tomcat"
  27. kill-9$TomcatID#杀掉原tomcat进程
  28. sleep3
  29. #rm-rf$TomcatCache#清理tomcat缓存
  30. $StartTomcat
  31. fi
  32. echo"[error]进程不存在!tomcat自动重启..."
  33. echo"[info]$StartTomcat,请稍候......"
  34. #rm-rf$TomcatCache
  35. echo"------------------------------"
  36. }
  37. Monitor>>$TomcatMonitorLog

通过ps -ef 及 grep 命令定位到对应项目的tomcat,获取到进程ID。

GetPageInfo = /dev/null,无底洞,不输出

先判断进程是否存在,不存在则重启,存在则进入状态判断,获取访问请求页的responseCode,不等于200的话也进行重启。

保存shell 名字为monitor.sh


然后在终端输入

copy
    crontab-e

在打开的脚本页输入:

copy
    */5****/usr/local/tomcat-6.0.41/tomcat_cardniu_stat/monitor.sh
5分钟进行一次监控。

猜你在找的Bash相关文章