Linux中使用Crontab定时监测维护Tomcat应用程序的方法
时间:2015-02-19 15:38 来源:linux.it.net.cn 作者:IT
监测的应用接口: 新闻接口、天气接口
处理方法:应用接口不可用时自动重启Tomcat,并发送告警邮件给相关人员
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
#---------------------------------------------------------
# 功能说明:
# 监控指定HTTP服务是否可用,如果不可用立即重启Tomcat
#
# 使用说明:
# 1. 将此脚本放置在/home/opentsp/crontab/目录下。
# 2. 修改脚本执行权下为可执行权限。
# 3. 添加到定时任务中,定时执行时间(建议为20分钟)
# 4. 修改邮件发送人员信息列表(当服务重启时发邮件给相关人员)
# - 周凌飞(2014-08-13)
#---------------------------------------------------------
export
LC_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
)
#接口调用失败的处理方法
function
doFail(){
local
ipinfo=$(
ifconfig
|
sed
-n
'2p'
|
awk
'{print substr($2,6)}'
);
# 发送邮件
for
_v
in
${mail_ary[*]} ;
do
echo
"[$SERVER_NAME 异常] - [$(date -d "
0 min
" +"
%Y-%m-%d %H:%M:%S
")] - [请求地址: $1] - [请求返回码: $2]"
| mail -s ${ipinfo}服务异常 ${_v}
done
# 写入日志
echo
"[ERROR] - [$(date -d "
0 min
" +"
%Y-%m-%d %H:%M:%S
")] - 返回码[$2] - 重启Tomcat服务"
>> detect-http.log
# 关闭Tomcat
sh
/home/opentsp/crontab/ibr-shutdown
.sh
exit
;
}
#请求超时时间设置
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
#服务器正常响应,检查返回内容
if
curl -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分钟一次。
(责任编辑:IT)
监测的应用接口: 新闻接口、天气接口
将以上代码放入到Linux的定时任务中即可,定时任务时间建议为20分钟一次。 (责任编辑:IT) |