Linux运维专家群 QQ:419858299 技术成就梦想,欢迎小伙伴加入.
vim selfrestart.sh #创建自启动脚本,将如下内容添加到文件中,脚本的值可能有所更改
#!/bin/sh# func:自动监控tomcat脚本并且执行重启操作# author:reed# date:12/09/2012# 定义环境变量#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.5.0_11/bin#export JAVA_HOME=/usr/java/jdk1.7.0_79#export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar#export PATH=$PATH:$JAVA_HOME/bin# DEFINE# 获取tomcat进程IDTomcatID=$(ps -ef |grep tomcat7 |grep -w 'tomcat7'|grep -v 'grep'|awk '{print $2}')# tomcat启动程序(这里注意tomcat实际安装的路径)StartTomcat=/usr/local/tomcat7/bin/./startup.sh# 定义要监控的页面地址 WebUrl=https://192.168.1.126# 日志输出GetPageInfo=/d20141212/log/TomcatMonitor.InfoTomcatMonitorLog=/d20141212/log/TomcatMonitor.logMonitor( ){ echo "[info]开始监控tomcat7...[$(date +'%F %H:%M:%S')]" TomcatServiceCode=$(curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" $WebUrl) if [ $TomcatServiceCode -eq 200 ]; then echo "[info]页面返回码为$TomcatServiceCode,tomcat7正在运行,测试页面正常......" echo elif [ -n "$TomcatID" ];#如果tomcat7进程为空,表示进程不存在 then echo " tomcat7停止运行,tomcat7进程为空,页面返回码为$TomcatServiceCode,3秒后开始重新启动"| mail -s "tomcat status" xxx@qq.com echo " tomcat7停止运行,tomcat7进程为空,页面返回码为$TomcatServiceCode,3秒后开始重新启动"| mail -s "tomcat status" xxx@qq.com echo "[info]tomcat进程为空,页面返回码为$TomcatServiceCode " $StartTomcat echo else kill -9 $TomcatID echo " tomcat7停止运行,tomcat7进程不为空,页面返回码为$TomcatServiceCode,3秒后开始重新启动"| mail -s "tomcat status" xxx@qq.com echo " tomcat7停止运行,tomcat7进程不为空,页面返回码为$TomcatServiceCode,3秒后开始重新启动"| mail -s "tomcat status" xxx@qq.com echo "[info]tomcat7的进程是$TomcatID,已kill掉,页面返回码为$TomcatServiceCode " $StartTomcat echo fi}Monitor>>$TomcatMonitorLog
2.crontab -e #编辑定时任务,如图
每分钟执行一次。
3. 查看我们定义的/tmp/TomcatMonitor.log日志文件,我们可以看到具体的情况,可以进行测试,将tomcat停止掉。过1分钟后tomcat会自动启动,同时也可以查看邮件。