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

 更新时间:2014年11月23日 23:27:26   作者:zhoulf  
定时监测发布的某项应用程序是否可用,如果不可用,立即执行处理措施,实现自动化运维工作

监测的应用接口: 新闻接口、天气接口
处理方法:应用接口不可用时自动重启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分钟一次。

相关文章

  • linux编译kernel和svn版本冲突的解决办法

    linux编译kernel和svn版本冲突的解决办法

    这篇文章主要介绍了linux编译kernel和svn版本冲突的解决办法,文中通过示例代码介绍的非常详细,对大家学习或者使用linux系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-05-05
  • 怎么禁用 Ubuntu 服务器中终端欢迎消息中的广告

    怎么禁用 Ubuntu 服务器中终端欢迎消息中的广告

    这篇文章主要介绍了怎么禁用 Ubuntu 服务器中终端欢迎消息中的广告,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • Apache上传文件500错误的解决方法

    Apache上传文件500错误的解决方法

    Apache 2.3.6开始,MaxRequestLen这个参数的默认值从之前的1GB(汗一个)调整到了131072字节(128KB)。于是上传128KB以下的文件不会出问题,但是超过这个值就会报500错误了
    2014-04-04
  • linux系统安装git及git常用命令

    linux系统安装git及git常用命令

    这篇文章主要介绍了linux系统安装git及git常用命令,大家参考使用吧
    2014-01-01
  • 服务器间如何实现scp免密文件传输

    服务器间如何实现scp免密文件传输

    文章介绍了如何在本地电脑或源服务器上生成SSH密钥,并将其复制到远程服务器上,以实现免密码登录,此外,还介绍了如何使用SCP命令在本地和远程服务器之间传输文件
    2025-02-02
  • 火山互联linux VPS配置方法

    火山互联linux VPS配置方法

    火山互联推出的免费VPS...拿来学习下还是不错的.申请过几次Liunx系统的.由于不是很熟悉.几次都没能配置好.下面介绍一下.前几天又申请了一个.
    2009-12-12
  • 在CentOS中搭建Hadoop的详细步骤

    在CentOS中搭建Hadoop的详细步骤

    这篇文章主要介绍了在CentOS中搭建Hadoop的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 详解linux下nohup日志输出过大问题解决方案

    详解linux下nohup日志输出过大问题解决方案

    这篇文章主要介绍了详解linux下nohup日志输出过大问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • APACHE 自定义404错误页面设置方法

    APACHE 自定义404错误页面设置方法

    自定义404页面返回不当状态码如200等给网站最终SEO效果带来的不利影响,因此,确保自定义的404错误页面能够返回404状态码是极为重要的,也是网站优化与SEO的基本要求
    2017-03-03
  • Ubuntu如何轻松编译openJDK详解

    Ubuntu如何轻松编译openJDK详解

    这篇文章主要给大家介绍了关于Ubuntu如何轻松编译openJDK的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06

最新评论