Linux中使用Crontab定时监测维护Tomcat应用程序的方法
监测的应用接口:新闻接口、天气接口
处理方法:应用接口不可用时自动重启Tomcat,并发送告警邮件给相关人员
#!/bin/bash
#---------------------------------------------------------
#功能说明:
# 监控指定HTTP服务是否可用,如果不可用立即重启Tomcat
#
#使用说明:
# 1.将此脚本放置在/home/opentsp/crontab/目录下。
# 2.修改脚本执行权下为可执行权限。
# 3.添加到定时任务中,定时执行时间(建议为20分钟)
# 4.修改邮件发送人员信息列表(当服务重启时发邮件给相关人员)
#-周凌飞(2014-08-13)
#---------------------------------------------------------
exportLC_ALL=zh_CN.UTF-8
#网站地址、参数
SERVER_NAME="趣驾云接口服务"
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'
#邮件发送列表
mail_ary=(
xxxxxxxxx@navinfo.com
xxxxxxxxx@navinfo.com
xxxxxxxxx@navinfo.com
)
#接口调用失败的处理方法
functiondoFail(){
localipinfo=$(ifconfig|sed-n'2p'|awk'{printsubstr($2,6)}');
#发送邮件
for_vin${mail_ary[*]};do
echo"[$SERVER_NAME异常]-[$(date-d"0min"+"%Y-%m-%d%H:%M:%S")]-[请求地址:$1]-[请求返回码:$2]"|mail-s${ipinfo}服务异常${_v}
done
#写入日志
echo"[ERROR]-[$(date-d"0min"+"%Y-%m-%d%H:%M:%S")]-返回码[$2]-重启Tomcat服务">>detect-http.log
#关闭Tomcat
sh/home/opentsp/crontab/ibr-shutdown.sh
exit;
}
#请求超时时间设置
TIME_OUT=40
functiondoCheck(){
localURL_X=$1;
localKeyWorld_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
#服务器正常响应,检查返回内容
ifcurl-m${TIME_OUT}-s${URL_X}|grep-q${KeyWorld_X};then
echo"->SUCCESS";
else
echo"->>Fail";
#返回内容错误处理
doFail${URL_X}${HTTP_STATUS_CODE};
fi
fi
}
#
#检查-新闻
doCheck${URL_2}${KeyWorld_2}
#检查-天气
doCheck${URL_3}${KeyWorld_3}
将以上代码放入到Linux的定时任务中即可,定时任务时间建议为20分钟一次。