自动监控tomcat服务,当tomcat服务挂掉时自动重启
一、脚本内容
[root@localhost ]# cat /root/autoCheck.sh
#!/bin/bash
startTomcat=/usr/local/tomcat-7/bin/startup.sh
tomcatLog=/tmp/tomcatLog
tomcatID=`ps -ef | grep tomcat-7 | grep -w 'tomcat-7' | grep -v 'grep' | wc -l`
Monitor()
{
#while true;do
#tomcatID=`ps -ef | grep tomcat-7 | grep -w 'tomcat-7' | grep -v 'grep' | wc -l`
echo "[info] 开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [ $tomcatID -lt 1 ];then
echo "[error] tomcat进程不存在!tomcat开始自动重启..."
echo "[info] $startTomcat,请稍候..."
sleep 3
$startTomcat
echo "[info] 服务启动成功..."
fi
echo "======================================================"
#sleep 1
#done
}
Monitor >> $tomcatLog
分析:
1)先定义tomcat服务启动目录startTomcat
2)定义日志输出目录tomcatLog
3)查询的tomcat进程号,通过wc -l统计是否存在该进程号,存在则大于1,不存在则小于1
4)判断是否存在tomcat服务进程,小于1则服务不存在,睡眠3秒重启tomcat服务,并将启动信息输出到日志文件中
二、设置定时执行任务
设置为每一分钟执行一次监控脚本
[root@localhost ]# crontab -l
*/1 * * * * /root/autoCheck.sh
检查服务并发送告警邮件
[root@rhel8 shell]# cat auto_monitor_service.sh
#!/bin/bash
# auto monitor server
# by author tanbaobao 2020/06/12
echo -e "