shell腳本實現(xiàn)定時檢查應用狀態(tài)步驟
引言
有時候,我們掛在服務器上的應用會因為一些特殊情況掛掉,致使項目經(jīng)理又對我們說:又掛了!趕緊去看看!
于是有了以下腳本,使用shellll編寫,用于定時檢查應用情況,掛掉則重啟。 這里以tomcat為例。
步驟
根據(jù)以下步驟即可實現(xiàn):
1.創(chuàng)建并編輯腳本
vim test.sh
2.復制以下腳本內容至.sh文件中
#自動檢測某個tomcat狀態(tài)(w精確匹配 v去除某種進程 awk數(shù)據(jù)處理 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 # 定義要監(jiān)控的頁面地址,建議跟上具體項目xxx ,建議 具體到某個頁面或接口 TomcatUrl=http://localhost:8080 # 日志輸出,根據(jù)實際情況設置路徑,并創(chuàng)建文本 #頁面日志 GetPageInfo=/usr/local/zhangwk/logs/tomcatMonitorPage.info #tomcat進程日志 TomcatMonitorLog=/usr/local/zhangwk/logs/tomcatMonitor.log MonitorTomcat() { echo "[info]開始監(jiān)控tomcat...[$(date +'%F %H:%M:%S')]" if [ $TomcatID ];then # 這里判斷TOMCAT進程是否存在 echo "[info]當前tomcat進程ID為:$TomcatID,繼續(xù)檢測頁面..." # 檢測是否啟動成功(成功的話頁面會返回狀態(tài)"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頁面出錯,請注意......狀態(tài)碼為$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.對該腳本賦予執(zhí)行權限
chmod +x test.sh
4.測試腳本是否報錯
sh test.sh
若無任何輸出,則說明該腳本無錯誤
5.設置linux定時器
進入定時器編輯
crontab -e
添加以下文本
*/5 * * * * /usr/local/zhangwk/test.sh
保存退出
注:根據(jù)腳本實際路徑填寫,這里的意思是每隔五分鐘執(zhí)行一次
以上就是shell腳本實現(xiàn)定時檢查應用狀態(tài)的詳細內容,更多關于shell腳本定時檢查應用狀態(tài)的資料請關注腳本之家其它相關文章!
相關文章
linux shell中單引號、雙引號、反引號、反斜杠的區(qū)別
shell可以識別4種不同類型的引字符號: 單引號字符' 雙引號字符" 反斜杠字符\ 反引號字符`的區(qū)別,學習shell編程的朋友可以看下2013-01-01Shell腳本實現(xiàn)隨機數(shù)多種方法介紹(date、random、uuid)
這篇文章主要介紹了Shell腳本實現(xiàn)隨機數(shù)多種方法介紹,本文講解了通過時間獲得隨機數(shù)、通過內部系統(tǒng)變量、通過系統(tǒng)內部唯一數(shù)據(jù)生成隨機數(shù)等方法,需要的朋友可以參考下2014-11-11詳解systemctl?和?service?區(qū)別及命令
systemctl和service都是管理Linux系統(tǒng)服務的工具,但systemctl更加先進,可以方便地管理systemd服務,而service適用于管理傳統(tǒng)的SysV服務,這篇文章主要介紹了systemctl和service區(qū)別及命令,需要的朋友可以參考下2023-07-07