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

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索crontab
定时监测
linux定时任务crontab、crontab 定时执行脚本、crontab 查看定时任务、crontab 定时任务、crontab 定时执行任务,以便于您获取更多的相关知识。

时间: 2024-10-04 13:55:56

Linux中使用Crontab定时监测维护Tomcat应用程序的方法_Linux的相关文章

Linux 中清空或删除大文件内容的五种方法_Linux

在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何Linux命令行编辑器 去打开这些文件.那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清空文件内容的方法. 注意: 由于再Linux中一切皆文件,你需要时刻注意,确保你将要清空的文件不是重要的用户文件或者系统文件.清空重要的系统文件或者配置文件可能会引发严重的应用失败或者系统错误. 提示:在下面的示例中,我们将使用名为 access.log 的文件来作为示例样本. 1. 通过重定向到 Nul

linux中向crontab中添加定时任务

如何在linux中向crontab中添加定时任务呢?下面就来讲解一下: 首先在命令行终端输入 # vi /etc/crontab 回车进入编辑模式 在crontab最下面增加如下: 01 3 * * * root ./home/mysql_bak.sh   每天早上的3点01分执行此任务 以上参数对应如下: 分  小时  日  月  星期  执行命令 (取值范围,0表示周日,*表任意一天,一般一行对应一个任务) # 每天早上的3点01分执行此任务 重启crontab使任务生效: # /etc/i

linux中向crontab中添加定时任务的方法

如何在linux中向crontab中添加定时任务呢?下面就来讲解一下: 首先在命令行终端输入 # vi /etc/crontab 回车进入编辑模式 在crontab最下面增加如下: 01 3 * * * root ./home/mysql_bak.sh   每天早上的3点01分执行此任务 以上参数对应如下: 分  小时  日  月  星期  执行命令 (取值范围,0表示周日,*表任意一天,一般一行对应一个任务) # 每天早上的3点01分执行此任务 重启crontab使任务生效: # /etc/i

Linux中如何以不同的用户身份运行程序?

Linux中如何以不同的用户身份运行程序? 在管理Linux的过程当中,有些时候我们需要针对特定的用户,赋予一定的权限去执行某些程序,哪么应该如何去指定以不同的用户身份去运行相应的程序呢?我们可以通过su命令来实现: su - userhttp://www.aliyun.com/zixun/aggregation/11696.html">name -c "/path/to/command" 示例如下: [root@localhost software]# whereis

Linux中的Crontab实现PHP计划任务

PHP程序有时候需要定时执行,使用Linux的Crontab执行PHP脚本,完成PHP计划任务.譬如,微博上用得很多的一款APP应用--皮皮时光机,就是实现定时发送内容的功能.当然PHP中也有ignore_user_abort函数. 但这两种方法都不太可靠,不稳定.我们可以借助Linux的Crontab工具来稳定可靠地触发PHP执行任务. 下面介绍Crontab的两种方法. 一.在Crontab中使用PHP执行脚本 就像在Crontab中调用普通的shell脚本一样,使用PHP程序来调用PHP脚

Linux中使用crontab命令启用自定义定时任务实例_Linux

Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,有需要的朋友可以了解一下. 一 简介 Linux下的任务调度分为两类,系统任务调度和用户任务调度 系统任务调度:系统需要定期执行的任务,比如重启.日志清理等,其配置文件是:/etc/crontab 用户任务调度:某个用户需要定期执行的任务.用户可以使用 crontab 命令来配置自己的定时任务.所有用户配置的定时任务都存放在 /var/spool/c

MySQL定时备份之使用Linux下的crontab定时备份实例_Mysql

1. Mysql备份某个数据库的命令 复制代码 代码如下: ##################################################################  # 备份某个数据库  ##################################################################  # root 用户,创建备份目录  mkdir -p /usr/local/cncounter/mysql_dump  cd /usr/local

linux下因为系统编码问题造成乱码的快速解决方法_Linux

最近一段时间遇到一些润乾的应用在linux系统下面乱码的问题,最后检查后都发现是客户的linux系统默认编码设置的不正确造成的,这种原因造成乱码的现象一般都是程序里面写死了的中文字符能正常展现,但是从数据库中取出来的或者从程序中读出来的中文字符就会出现乱码. 下面就介绍一下由于linux系统编码设置不正确造成润乾报表应用乱码问题的解决办法. 第一步:检查linux的系统编码. 检查linux的系统编码,确定系统是否支持中文.在linux系统的终端中输入命令:locale,就会看到打印出的系统编码

linux查看主板内存槽与内存信息的命令dmidecode方法_Linux

1.查看内存槽数.那个槽位插了内存,大小是多少 dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range 2.查看最大支持内存数 dmidecode|grep -P 'Maximum\s+Capacity' 3.查看槽位上内存的速率,没插就是unknown. dmidecode|grep -A16 "Memory Device"|grep 'Speed' 其实以上数值就是通过dmidecode命令