美文网首页
[crontab 设置检测Tomcat状态重启]容易遇到的问题

[crontab 设置检测Tomcat状态重启]容易遇到的问题

作者: 長得太帥忚四種檌 | 来源:发表于2017-11-17 15:32 被阅读10次

    1.定时启动设置

    crontab -e
    然后设置每分钟执行一次脚本
    * * * * * /usr/local/tomcat/bin/monitor.sh
    

    2.monitor脚本内容:

    #!/bin/sh
    # 获取tomcat进程ID
    ServerID=$(ps -ef |grep tomcat |grep -w 'org.apache.catalina.startup.Bootstrap'|grep -v 'grep'|awk '{print $2}') 
    
    # tomcat启动程序(这里注意tomcat实际安装的路径)  
    StartTomcat=/app/tomcat/bin/startup.sh
    
    # 定义要监控的页面地址  
    WebUrl=http://localhost:8080/BookReaderServer/action/test
    
    # 日志输出 
    ServerMonitorLog=/app/tomcat/logs/ServerMonitor.log 
    
    Monitor() 
    {  
      echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"  
      if [[ $ServerID ]];then # 这里判断TOMCAT进程是否存在  
        echo "[info]当前tomcat进程ID为:$ServerID,继续检测页面..."  
        # 检测是否启动成功(成功的话页面会返回状态"200")  
        ServiceCode=$(curl -I -m 10 -o /dev/null -s -w %{http_code} $WebUrl)  
        if [ $ServiceCode -eq 200 ];then  
            echo "[info]页面返回码为$ServiceCode,tomcat启动成功,测试页面正常......"  
        else  
            echo "[error]tomcat页面出错,请注意......状态码为$ServiceCode,错误日志已输出到$ServerMonitorLog"  
            echo "[error]页面访问出错,开始重启tomcat"  
            kill -9 $ServerID  # 杀掉原tomcat进程  
            sleep 3  
            $StartTomcat
        fi  
      else  
        echo "[error]tomcat进程不存在!tomcat开始自动重启..."  
        echo "[info]$StartTomcat,请稍候......"  
        $StartTomcat  
      fi  
      echo "------------------------------"  
    }  
    Monitor>>$ServerMonitorLog
    

    3.crontab启动的脚本可能会找不到java, 因为环境变量没有,可以在catalina.sh文件中直接指定jdk路径:

    export JAVA_HOME=/usr/local/java/jdk1.8.0_144
    export JRE_HOME=$JAVA_HOME/jre
    

    相关文章

      网友评论

          本文标题:[crontab 设置检测Tomcat状态重启]容易遇到的问题

          本文链接:https://www.haomeiwen.com/subject/zsejvxtx.html