Linux中使用Crontab定時(shí)監(jiān)測(cè)維護(hù)Tomcat應(yīng)用程序的方法
監(jiān)測(cè)的應(yīng)用接口: 新聞接口、天氣接口
處理方法:應(yīng)用接口不可用時(shí)自動(dòng)重啟Tomcat,并發(fā)送告警郵件給相關(guān)人員
#!/bin/bash #--------------------------------------------------------- # 功能說(shuō)明: # 監(jiān)控指定HTTP服務(wù)是否可用,如果不可用立即重啟Tomcat # # 使用說(shuō)明: # 1. 將此腳本放置在/home/opentsp/crontab/目錄下。 # 2. 修改腳本執(zhí)行權(quán)下為可執(zhí)行權(quán)限。 # 3. 添加到定時(shí)任務(wù)中,定時(shí)執(zhí)行時(shí)間(建議為20分鐘) # 4. 修改郵件發(fā)送人員信息列表(當(dāng)服務(wù)重啟時(shí)發(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")] - [請(qǐng)求地址: $1] - [請(qǐng)求返回碼: $2]" | mail -s ${ipinfo}服務(wù)異常 ${_v} done # 寫(xiě)入日志 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; } #請(qǐng)求超時(shí)時(shí)間設(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 #請(qǐng)求失敗 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)容錯(cuò)誤處理 doFail ${URL_X} ${HTTP_STATUS_CODE}; fi fi } # #檢查 - 新聞 doCheck ${URL_2} ${KeyWorld_2} #檢查 - 天氣 doCheck ${URL_3} ${KeyWorld_3}
將以上代碼放入到Linux的定時(shí)任務(wù)中即可,定時(shí)任務(wù)時(shí)間建議為20分鐘一次。
相關(guān)文章
ubuntu中修改grub的啟動(dòng)時(shí)間生成
這篇文章主要介紹了ubuntu中修改grub的啟動(dòng)時(shí)間生成,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Linux低電量自動(dòng)關(guān)機(jī)的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Linux低電量自動(dòng)關(guān)機(jī)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用linux具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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)啟動(dòng)后黑屏問(wèn)題
這篇文章主要介紹了解決VMware安裝linux系統(tǒng)啟動(dòng)后黑屏問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12Linux進(jìn)程間通信(IPC)的幾種方式總結(jié)
進(jìn)程間通信是指至少兩個(gè)進(jìn)程或線(xiàn)程間傳送數(shù)據(jù)或信號(hào)的一些技術(shù)或方法,每個(gè)進(jìn)程都有自己的一部分獨(dú)立的系統(tǒng)資源,彼此是隔離的,為了能使不同的進(jìn)程互相訪(fǎng)問(wèn)資源并進(jìn)行協(xié)調(diào)工作,才有了進(jìn)程間通信,本文就給大家介紹幾種Linux進(jìn)程間通信的方式,需要的朋友可以參考下2023-09-09CentOS8出現(xiàn)-bash:亂碼問(wèn)題及解決方法
這篇文章主要介紹了CentOS8出現(xiàn)-bash:亂碼問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04yum安裝CDH5.5 hive、impala的過(guò)程詳解
這篇文章主要介紹了yum安裝CDH5.5 hive、impala的過(guò)程詳解的相關(guān)資料,非常不錯(cuò) 具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10centos 修改ssh默認(rèn)端口號(hào)的方法示例
這篇文章主要介紹了centos 修改ssh默認(rèn)端口號(hào)的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02