Linux中使用Crontab定時監(jiān)測維護(hù)Tomcat應(yīng)用程序的方法
更新時間:2014年11月23日 23:27:26 作者:zhoulf
定時監(jiān)測發(fā)布的某項(xiàng)應(yīng)用程序是否可用,如果不可用,立即執(zhí)行處理措施,實(shí)現(xiàn)自動化運(yùn)維工作
監(jiān)測的應(yīng)用接口: 新聞接口、天氣接口
處理方法:應(yīng)用接口不可用時自動重啟Tomcat,并發(fā)送告警郵件給相關(guān)人員
#!/bin/bash #--------------------------------------------------------- # 功能說明: # 監(jiān)控指定HTTP服務(wù)是否可用,如果不可用立即重啟Tomcat # # 使用說明: # 1. 將此腳本放置在/home/opentsp/crontab/目錄下。 # 2. 修改腳本執(zhí)行權(quán)下為可執(zhí)行權(quán)限。 # 3. 添加到定時任務(wù)中,定時執(zhí)行時間(建議為20分鐘) # 4. 修改郵件發(fā)送人員信息列表(當(dāng)服務(wù)重啟時發(fā)郵件給相關(guān)人員) # - 周凌飛(2014-08-13) #--------------------------------------------------------- export LC_ALL=zh_CN.UTF-8 #網(wǎng)站地址、參數(shù) SERVER_NAME="趣駕云接口服務(wù)" URL_2="http://127.0.0.1/get_rss_news?p=%7b%27chId%27:%27TIYU%27%7d" KeyWorld_2='<title>' URL_3="http://127.0.0.1/get_json_weather?p=%7blon:116.407617,lat:39.993956,date:1%7d" KeyWorld_3='temperature' #郵件發(fā)送列表 mail_ary=( xxxxxxxxx@navinfo.com xxxxxxxxx@navinfo.com xxxxxxxxx@navinfo.com ) #接口調(diào)用失敗的處理方法 function doFail(){ local ipinfo=$(ifconfig |sed -n '2p'|awk '{print substr($2,6)}'); # 發(fā)送郵件 for _v in ${mail_ary[*]} ; do echo "[$SERVER_NAME 異常] - [$(date -d "0 min" +"%Y-%m-%d %H:%M:%S")] - [請求地址: $1] - [請求返回碼: $2]" | mail -s ${ipinfo}服務(wù)異常 ${_v} done # 寫入日志 echo "[ERROR] - [$(date -d "0 min" +"%Y-%m-%d %H:%M:%S")] - 返回碼[$2] - 重啟Tomcat服務(wù)" >> detect-http.log # 關(guān)閉Tomcat sh /home/opentsp/crontab/ibr-shutdown.sh exit; } #請求超時時間設(shè)置 TIME_OUT=40 function doCheck(){ local URL_X=$1; local KeyWorld_X=$2; HTTP_STATUS_CODE=`curl -m $TIME_OUT -o /dev/null -s -w "%{http_code}" "${URL_X}"` if [ $HTTP_STATUS_CODE != 200 ];then #請求失敗 echo "-> Fail - 返回碼${HTTP_STATUS_CODE}"; doFail ${URL_X} ${HTTP_STATUS_CODE}; else #服務(wù)器正常響應(yīng),檢查返回內(nèi)容 if curl -m ${TIME_OUT} -s ${URL_X} | grep -q ${KeyWorld_X};then echo "-> SUCCESS"; else echo "->> Fail"; # 返回內(nèi)容錯誤處理 doFail ${URL_X} ${HTTP_STATUS_CODE}; fi fi } # #檢查 - 新聞 doCheck ${URL_2} ${KeyWorld_2} #檢查 - 天氣 doCheck ${URL_3} ${KeyWorld_3}
將以上代碼放入到Linux的定時任務(wù)中即可,定時任務(wù)時間建議為20分鐘一次。
相關(guān)文章
Linux低電量自動關(guān)機(jī)的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Linux低電量自動關(guān)機(jī)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用linux具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11Ubuntu LTS服務(wù)器部署Jenkins詳細(xì)介紹
這篇文章主要介紹了Ubuntu LTS服務(wù)器部署Jenkins詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-03-03解決VMware安裝linux系統(tǒng)啟動后黑屏問題
這篇文章主要介紹了解決VMware安裝linux系統(tǒng)啟動后黑屏問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12Linux進(jìn)程間通信(IPC)的幾種方式總結(jié)
進(jìn)程間通信是指至少兩個進(jìn)程或線程間傳送數(shù)據(jù)或信號的一些技術(shù)或方法,每個進(jìn)程都有自己的一部分獨(dú)立的系統(tǒng)資源,彼此是隔離的,為了能使不同的進(jìn)程互相訪問資源并進(jìn)行協(xié)調(diào)工作,才有了進(jìn)程間通信,本文就給大家介紹幾種Linux進(jìn)程間通信的方式,需要的朋友可以參考下2023-09-09CentOS8出現(xiàn)-bash:亂碼問題及解決方法
這篇文章主要介紹了CentOS8出現(xiàn)-bash:亂碼問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04