Linux运维专家群 QQ:419858299  技术成就梦想,欢迎小伙伴加入.

  1. 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会自动启动,同时也可以查看邮件。