第一步:创建脚本
#!/bin/bash# func:自动监控tomcat脚本并且执行重启操作# 获取tomcat进程ID(其中[grep -w 'tomcat']代码中的tomcat需要替换为你的tomcat文件夹名)TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-7.0.96'|grep -v 'grep'|awk '{print $2}')# tomcat启动程序(这里注意tomcat实际安装的路径)StartTomcat=/usr/java/apache-tomcat-7.0/bin/startup.shTomcatCache=/usr/java/apache-tomcat-7.0/work#定义要监控的页面地址WebUrl=http://xxx.com#日志输出GetPageInfo=/tmp/TomcatMonitor.InfoTomcatMonitorLog=/tmp/TomcatMonitor.logMonitor(){echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"if [[ $TomcatID ]];then #这里判断Tomcat进程是否存在echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."# 检测是否启动成功(成功的话页面会返回状态"200")TomcatServiceCode=$(curl -I -m 10 -o /dev/null -s -w %{http_code} $WebUrl)if [ $TomcatServiceCode -eq 200 ];thenecho "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常"elseecho "[error]tomcat页面出错,请注意...状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"echo "[error]页面访问出错,开始重启tomcat"kill -9 $TomcatID # 杀掉原tomcat进程sleep 3rm -rf $TomcatCache # 清理tomcat缓存$StartTomcatfielse echo "[error]tomcat进程不存在!tomcat开始自动重启..."echo "[info]$StartTomcat,请稍候..."rm -rf $TomcatCache$StartTomcatfiecho "--------------------------"}Monitor>>$TomcatMonitorLog
第二步:开户权限
Chmod -755 Tomcat-Monitor-shell.sh
第三步:创建定时器
Crontab -e* * * * * /usr/www/Tomcat-Monitor-shell.sh
[root@iZ2zeaZ ~]# crontab -l* * * * * /usr/www/Tomcat-Monitor-shell.sh
第四步:查看日志
[root@iZ2zeab8t820b5ywp0rkfeZ ~]# cat /tmp/TomcatMonitor.log
![e3deb27863536350913aa01cf2eec35c.png](https://i-blog.csdnimg.cn/blog_migrate/d04dcd2ac45a5d226343eb889f987774.jpeg)