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
| #!/bin/sh
# func:自动监控tomcat脚本并且执行重启操作
# author:reed
# date:12/09/2012
# 定义环境变量
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.5.0_11/bin
export JAVA_HOME=/usr/java/jdk1.7.0_79
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# DEFINE
# 获取tomcat进程ID
TomcatID=$(ps -ef |grep tomcat_1 |grep -w 'tomcat_1'|grep -v 'grep'|awk '{print $2}')
# tomcat启动程序(这里注意tomcat实际安装的路径)
StartTomcat=/usr/local/tomcat_1/bin/./startup.sh
# 定义要监控的页面地址
WebUrl=http://127.0.0.1
# 日志输出
GetPageInfo=/tmp/TomcatMonitor.Info
TomcatMonitorLog=/tmp/TomcatMonitor.log
Monitor( )
{
echo "[info]开始监控tomcat_1...[$(date +'%F %H:%M:%S')]"
TomcatServiceCode=$(curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" $WebUrl)
if [ $TomcatServiceCode -eq 200 ];
then
echo "[info]页面返回码为$TomcatServiceCode,tomcat正在运行,测试页面正常......"
elif [ ! -n $TomcatID ];
then
kill -9 $TomcatID # 杀掉原tomcat_1进程
else
echo " tomcat停止运行,页面返回码为$TomcatServiceCode,3秒后开始重新启动"| mail -s "tomcat status" XXXX@qq.com
echo " tomcat停止运行,页面返回码为$TomcatServiceCode,3秒后开始重新启动"| mail -s "tomcat status" XXXX@qq.com
echo "[info]tomcat停止运行,页面返回码为$TomcatServiceCode "
$StartTomcat
fi
}
Monitor>>$TomcatMonitorLog
|