Linux中使用Crontab定時(shí)監(jiān)測維護(hù)Tomcat應(yīng)用程序的方法
更新時(shí)間:2014年11月23日 23:27:26 作者:zhoulf
定時(shí)監(jiān)測發(fā)布的某項(xiàng)應(yīng)用程序是否可用,如果不可用,立即執(zhí)行處理措施,實(shí)現(xiàn)自動(dòng)化運(yùn)維工作
監(jiān)測的應(yīng)用接口: 新聞接口、天氣接口
處理方法:應(yīng)用接口不可用時(shí)自動(dòng)重啟Tomcat,并發(fā)送告警郵件給相關(guān)人員
#!/bin/bash
#---------------------------------------------------------
# 功能說明:
# 監(jiān)控指定HTTP服務(wù)是否可用,如果不可用立即重啟Tomcat
#
# 使用說明:
# 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")] - [請求地址: $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í)時(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
#請求失敗
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 服務(wù)器中終端歡迎消息中的廣告
這篇文章主要介紹了怎么禁用 Ubuntu 服務(wù)器中終端歡迎消息中的廣告,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11
服務(wù)器間如何實(shí)現(xiàn)scp免密文件傳輸
文章介紹了如何在本地電腦或源服務(wù)器上生成SSH密鑰,并將其復(fù)制到遠(yuǎn)程服務(wù)器上,以實(shí)現(xiàn)免密碼登錄,此外,還介紹了如何使用SCP命令在本地和遠(yuǎn)程服務(wù)器之間傳輸文件2025-02-02
APACHE 自定義404錯(cuò)誤頁面設(shè)置方法
自定義404頁面返回不當(dāng)狀態(tài)碼如200等給網(wǎng)站最終SEO效果帶來的不利影響,因此,確保自定義的404錯(cuò)誤頁面能夠返回404狀態(tài)碼是極為重要的,也是網(wǎng)站優(yōu)化與SEO的基本要求2017-03-03

