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

     

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