java定时器检测状态_实用代码| shell脚本实现定时检查应用状态
關注“java從心”,置頂公眾號
每天進步一點點,距離大腿又近一步!
閱讀本文大概需要5分鐘 有時候,我們掛在服務器上的應用會因為一些特殊情況掛掉,致使項目經理又對我們說:又掛了!趕緊去看看!
于是有了以下腳本,使用shell編寫,用于定時檢查應用情況,掛掉則重啟。 這里以tomcat為例。
根據以下步驟即可實現:
1.創建并編輯腳本
vim test.sh
2.復制以下腳本內容至.sh文件中
#自動檢測某個tomcat狀態(w精確匹配 v去除某種進程 awk數據處理 print $2 打印第二列)
TomcatID=$(ps -ef |grep -w 'apache-tomcat-7.0.81'|grep -v 'grep'|awk '{print $2}')
# tomcat啟動程序(這里注意tomcat實際安裝的路徑)
StartTomcat=/usr/local/apache-tomcat-7.0.81/bin/startup.sh
TomcatCache=/usr/local/apache-tomcat-7.0.81/work
# 定義要監控的頁面地址,建議跟上具體項目xxx ,建議 具體到某個頁面或接口
TomcatUrl=http://localhost:8080
# 日志輸出,根據實際情況設置路徑,并創建文本
#頁面日志
GetPageInfo=/usr/local/zhangwk/logs/tomcatMonitorPage.info
#tomcat進程日志
TomcatMonitorLog=/usr/local/zhangwk/logs/tomcatMonitor.log
MonitorTomcat()
{
echo "[info]開始監控tomcat...[$(date +'%F %H:%M:%S')]"
if [ $TomcatID ];then # 這里判斷TOMCAT進程是否存在
echo "[info]當前tomcat進程ID為:$TomcatID,繼續檢測頁面..."
# 檢測是否啟動成功(成功的話頁面會返回狀態"200")
TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $TomcatUrl -w %{http_code})
if [ $TomcatServiceCode -eq 200 ];then
echo "[info]頁面返回碼為$TomcatServiceCode,tomcat啟動成功,測試頁面正常......"
else
echo "[error]tomcat頁面出錯,請注意......狀態碼為$TomcatServiceCode,錯誤日志已輸出到$GetPageInfo"
echo "[error]頁面訪問出錯,開始重啟tomcat"
kill -9 $TomcatID # 殺掉原tomcat進程
sleep 3
rm -rf $TomcatCache # 清理tomcat緩存
$StartTomcat # 啟動tomcat
fi
else
echo "[error]tomcat進程不存在!tomcat開始自動重啟..."
echo "[info]$StartTomcat,請稍候......"
rm -rf $TomcatCache # 清理tomcat緩存
$StartTomcat # 啟動tomcat
fi
echo "------------------------------"
}
MonitorTomcat >>$TomcatMonitorLog
3.對該腳本賦予執行權限
chmod +x test.sh
4.測試腳本是否報錯
sh test.sh
若無任何輸出,則說明該腳本無錯誤
5.設置linux定時器
進入定時器編輯
crontab -e
添加以下文本
*/5 * * * * /usr/local/zhangwk/test.sh
保存退出
注:根據腳本實際路徑填寫,這里的意思是每隔五分鐘執行一次
**另外,還有一份實用代碼,需要的拿去:省市區級聯查詢(附最新省市區數據)
關注微信公眾號"java從心",后臺回復:"省市區級聯"獲取**
**end~thanks!
一個立志成大腿而每天努力奮斗的年輕人
期待你的到來!**
總結
以上是生活随笔為你收集整理的java定时器检测状态_实用代码| shell脚本实现定时检查应用状态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java浮点整型数组_如何将C风格的二进
- 下一篇: python列表中包含元祖_python