Linux服务器下配置tomcat宕机重启

  1. 在服务器上创建一个bush文件,我命名为tomcatMonitor.sh
  2. 编辑tomcatMonitor.sh文件,if及fi必须成对出现,如果if then写在一行需要用;隔开
    #!/bin/sh
    # 获取tomcat的PID
    TOMCAT_PID=$(ps -ef|grep tomcat|grep -w 'tomcat'|grep -v 'grep'|awk '{print $2}')
    # tomcat的启动文件位置
    START_TOMCAT=/home/user/tomcat/bin/startup.sh
    # 需要监测的一个GET请求地址
    MONITOR_URL=http://localhost:8080/
    # 监测日志输出路径
    TOMCAT_MONITOR_LOG=/home/user/tomcatMonitor.log
    Monitor()
    {
      # 输出时间,注意date后有个空格
      echo "[$(date +'%F %H:%M:%S')]"
      echo "[info]开始监控tomcat..."
      # 判断tomcat的PID是否存在,如不存在说明tomcat进程已关闭,注意[]前后,变量前后,都要有空格
      if [[ $TOMCAT_PID ]];then
        echo "[info]当前tomcat的PID为:$TOMCAT_PID,继续监测页面..."
        # 向监测的地址发送请求并获取响应码
        HTTP_REPONSE_STATUS=$(curl -l -m 10 -o /dev/null -s -w %{http_code} $MONITOR_URL)
        # 如果响应码为200证明tomcat在正常启用
        if [[ $HTTP_REPONSE_STATUS -eq 200 ]];then
          echo "[info]tomcat启动正常..."
        else
          echo "[error]页面返回码为$HTTP_REPONSE_STATUS,开始重启tomcat..."
          # 结束tomcat进程
          kill -9 $TOMCAT_PID
          # 5秒后重启tomcat
          sleep 5
          $START_TOMCAT
        fi
      else
        echo "[error]tomcat进程不存在,开始启动..."
        echo "[info]$START_TOMCAT,..."
        $START_TOMCAT
      fi
      echo "监测执行完成"
    }
    # 输出到指定文件中
    Monitor>>$TOMCAT_MONITOR_LOG

     

  3. 编辑定时器
    crontab -e

     

  4. 编辑定时器文件,设置每分钟执行一次,加入如下代码并保存
    */1 * * * * /home/user/tomcatMonitor.sh

     

  5. 重新加载定时器
    systemctl reload crond.service

     

  6. 将定时器设为开机自启动:编辑/etc/rc.d/rc.local,加入如下代码并保存
    systemctl start crond.service
  7. 输入如下代码可以看到tomcatManitor.sh已经在正常工作
    tail tomcatMonitor.log

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章