您的位置:首页 > 运维架构 > Shell

shell脚本监控tomcat服务运行状态,服务关闭后进行重启

2017-11-01 22:29 1586 查看
最近在维护一个项目的时候,发现经常有tomcat运行一段时间后自动停掉的情况,影响了正常的生产交易,被逼无奈,在未找到tomcat自动关闭原因之前,还是得靠shell脚本来进行实时监控。如果发现tomcat没有运行,则执行startup.sh启动tomcat,以下贴出脚本源码。

#!bin/sh
date=`date +%Y-%m-%d_%H:%M:%S`
##tomcat的进程数,由于脚本名称为monitor_tomcat.sh,所以排除了对monitor_tomcat的搜索
count=`ps -ef|grep tomcat|grep -v "grep"|grep -v "monitor_tomcat"|wc -l`
##监控脚本日志存放路径
recorddir=/mnt/monitor_logs
##监控脚本日志文件名称
recordfile=monitor.`date +%Y-%m-%d`.log
##tomcat启动文件所在路径
tomcaturl=/mnt/jiaofu/tomcat/bin
##normal--正常运行;upgrade--升级
usefor=normal

if [ ! -d ${recorddir} ] ; then
mkdir -p ${recorddir}
fi

if [ "${usefor}" == "normal" ] ; then
if [ ${count} -gt 0 ] ; then
echo "${date},tomcat服务运行正常!">>${recorddir}/${recordfile}
else
sh ${tomcaturl}/startup.sh
echo "${date},重启了tomcat服务!">>${recorddir}/${recordfile}
fi
elif [ "${usefor}" == "upgrade" ] ; then
echo "${date},系统升级,不需要重新启动tomcat服务!">>${recorddir}/${recordfile}
else
echo "${date},参数配置异常,请检查usefor参数!">>${recorddir}/${recordfile}
fi


脚本说明:

1.recorddir=/mnt/monitor_logs是存放该监控脚本产生的日志的文件夹,使用时候需要指定,但不需要手动创建(脚本中会自动创建);

2.tomcaturl=/mnt/jiaofu/tomcat/bin是tomcat的bin目录的路径,需要根据实际情况进行配置;

3.usefor=normal,这里设置了一个配置项,当进行服务器升级的时候,需要将usefor设置为upgrade,以避免脚本重启服务器

脚本写完了,接下来就是进行脚本的安装了:

1.首先将脚本上传到服务器相应位置,如/home/shell路径下;

2.添加linux计划任务:

1)crontab -e,在里边加入:

/5 * * * sh /home/shell/monitor_tomcat.sh 让该脚本每5分钟执行一次

2)重启crond服务使之生效:

service crond restart

3)查看已添加的计划任务,确保本次添加成功:

crontab -l ,如果可以看到刚才添加的那段话,则证明添加成功。

至此,一个简单监控tomcat运行状态的脚本就完成了,通过查看该脚本每5分钟产生的日志monitor.xxxx_xx_xx.log,可以看到tomcat一个时间段内是否正常,是否重启过,是否进行了升级操作。

此外,该脚本稍加修改(修改进程名称和启动方式),既可以实现linux下对其他进程的监控功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell tomcat