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

相关文章

  • CentOS7.2安装MySql5.7并开启远程连接授权的教程

    CentOS7.2安装MySql5.7并开启远程连接授权的教程

    这篇文章主要介绍了CentOS7.2安装MySql5.7并开启远程连接授权的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • CentoS6.5环境下redis4.0.1(stable)安装和主从复制配置方法

    CentoS6.5环境下redis4.0.1(stable)安装和主从复制配置方法

    这篇文章主要介绍了CentoS6.5环境下redis4.0.1(stable)安装和主从复制配置方法,结合实例形式分析了CentoS6.5下redis4.0.1的安装和主从复制配置相关步骤、命令与操作注意事项,需要的朋友可以参考下
    2018-04-04
  • Linux下rpm、yum和源码三种安装方式详细介绍

    Linux下rpm、yum和源码三种安装方式详细介绍

    这篇文章主要介绍了Linux下rpm、yum和源码三种安装方式详细介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Windows 10 太难用如何定制你的 Ubuntu方法详解

    Windows 10 太难用如何定制你的 Ubuntu方法详解

    这篇文章主要介绍了Windows 10 太难用,如何定制你的 Ubuntu,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • linux Centos7断网下安装应用程序详解

    linux Centos7断网下安装应用程序详解

    在本篇文章里小编给大家整理的是关于linux最新版本Centos7,断网情况下安装应用程序相关步骤,需要的朋友们可以学习下。
    2019-08-08
  • linux小技巧之利用screen管理你的远程会话

    linux小技巧之利用screen管理你的远程会话

    这篇文章主要介绍了关于linux中的一个小技巧之利用screen如何管理你的远程会话的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考价值,需要的朋友们下面来一起学习学习吧。
    2017-04-04
  • Linux下误删messages文件的找回方法

    Linux下误删messages文件的找回方法

    今天小编就为大家分享一篇关于Linux下误删messages文件的找回方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Linux输入输出重定向详细使用说明

    Linux输入输出重定向详细使用说明

    Linux标准输入、输出设备主要是键盘和显示器,输出重定向是改变程序运行的输入来源和输出地点
    2018-03-03
  • 详解ubuntu14.04搭建(迁移)hustoj记录

    详解ubuntu14.04搭建(迁移)hustoj记录

    这篇文章主要介绍了详解ubuntu14.04搭建(迁移)hustoj记录,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 阿里云centos7服务器搭建nginx  web服务经验示例

    阿里云centos7服务器搭建nginx web服务经验示例

    本篇文章主要介绍了阿里云centos7服务器搭建nginx web服务经验示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08

最新评论