检测tomcat运行状态
tomcat出现不明原因宕机,需要及时重启步骤:
1、编写shell脚本(linux系统需要unix格式)
'/iplat/apache-tomcat-9.0.37/' 这 个是安装目录,定位到当前tomcat并且唯一
tomcatMonitor.log 输出的日志,自定义位置
tomcatMonitor.sh 我放在tomcat的bin目录下,位置自定
#!/bin/sh
# 获取tomcat的PID
TOMCAT_PID=$(ps -ef|grep '/iplat/apache-tomcat-9.0.37/'|grep -w 'tomcat'|grep -v 'grep'|grep -v 'Monitor'|awk '{print $2}')
. /etc/profile #此行必不可少,若少了,tomcat无法自动重启
# tomcat的启动文件位置
START_TOMCAT=/iplat/apache-tomcat-9.0.37/bin/startup.sh
# 监测日志输出路径
TOMCAT_MONITOR_LOG=/iplat/apache-tomcat-9.0.37/logs/tomcatMonitor.log
Monitor()
{
# 输出时间,注意date后有个空格
echo "[$(date +'%F %H:%M:%S')]"
echo "[info]开始监控tomcat..."
# 判断tomcat的PID是否存在,如不存在说明tomcat进程已关闭,注意[]前后,变量前后,都要有空格
if [[ $TOMCAT_PID ]];then
echo "[info]当前tomcat的PID为:$TOMCAT_PID,继续监测页面..."
else
echo "[error]tomcat进程不存在,开始启动..."
echo "[info]$START_TOMCAT,..."
sh $START_TOMCAT
fi
echo "监测执行完成"
}
# 输出到指定文件中
Monitor>>$TOMCAT_MONITOR_LOG
2、给予 tomcatMonitor.sh 执行权限
chmod +x tomcatMonitor.sh
3、编写定时任务,使用linux系统自带的 crontab
执行 crontab -e
1、如果没有先安装
# 安装crontab
yum install crontab
# 启动
/sbin/service crond start
# 停止
/sbin/service crond stop
# 重启服务
/sbin/service crond restart
# 重新加载
/sbin/service crond reload
# crontab其他命令
要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可 查看当前用户的crontab,输入 crontab -l
编辑crontab,输入 crontab -e
删除crontab,输入 crontab -r
2、编辑定时器文件,设置每分钟执行一次,加入如下代码并保存
*/1 * * * * /iplat/apache-tomcat-9.0.37/bin/tomcatMonitor.sh
3、重新加载定时器
systemctl reload crond.service