- 在服務器上創建一個bush文件,我命名爲tomcatMonitor.sh
- 編輯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
- 編輯定時器
crontab -e
- 編輯定時器文件,設置每分鐘執行一次,加入如下代碼並保存
*/1 * * * * /home/user/tomcatMonitor.sh
- 重新加載定時器
systemctl reload crond.service
- 將定時器設爲開機自啓動:編輯/etc/rc.d/rc.local,加入如下代碼並保存
systemctl start crond.service
- 輸入如下代碼可以看到tomcatManitor.sh已經在正常工作
tail tomcatMonitor.log
Linux服務器下配置tomcat宕機重啓
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.