Linux中使用Crontab定时监测维护Tomcat应用程序的方法

监测的应用接口: 新闻接口、天气接口
处理方法:应用接口不可用时自动重启Tomcat,并发送告警邮件给相关人员

  #!/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分钟一次。

参与评论