我做的一个监控并自动重启tomcat的脚本

公司的tomcat存在内存泄露的问题,偏偏程序员们也没时间去debug,当时我正好在研究shell脚本,就用shell写了如下内容:
首先,我不太懂tomcat,所以请java程序员写了一个web页面监控tomcat的状态,当tomcat空闲内存太少的时候,web页面的“LessOfMemory”字段就会消失,然后根据这个来判断是否应该重启tomcat。
正文如下:
#!/bin/bash
#Program
# yong lai jian shi tomcat shi fou si diao .ru guo si le jiu chong qi ta .
#History
#2009/1/5 Caoyameng Version 1.0

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/usr/local/tomcat/bin
export PATH
#PATH里加入了tomcat的路径

test -e "status.jsp" && rm -f status.jsp;
#检测当前目录下是否有监控用的web文件存在,存在则删除。
wget -b "http://127.0.0.1/main/status.jsp"
#下载这个页面,加-b的参数是为了让wget后台下载。
#之所以设置后台下载,是考虑到一种及其罕见的情况,如果cpu占用量100%或者端口阻塞,10分钟乃至1个小时都下载不下来这个页面,那整个监控脚本岂不是要卡在这里不动了?
sleep 3
#延时三秒,给wget下载页面的时间

tom=`cat status.jsp |grep LessOfMemory`
#设置一个变量为tom。
if
[ "$tom" == "" ] ;then

sh /opt/tomcat/bin/shutdown.sh
#如果tom变量为空,则执行tomcatshutdown程序
date >>time.txt
#将shutdown的时间计入日志。
elif
[ "$tom" != "" ] ;then
exit 0
#如果tom不为空,则说明该web页面含有LessOfMemory字段,tomcat工作正常,退出shell脚本。
fi

sleep 3
#延时三秒,给tomcat自己结束自己的时间

tompid=`ps x | grep tomcat | grep -v grep|awk '{print $1}'`

#看一下tomcat进程是否还存在?如果存在,则将其PID号赋值给tompid变量

[ -z "$tompid" ] && kill -9 $tompid ;
#如果tompid不为空,则执行kill -9命令强行结束tomcat
Date >> time2.txt
#将系统时间写入第二个日志文件
sh /opt/tomcat/bin/startup.sh
#重启tomcat。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值