检测tomcat运行状态

387 阅读1分钟

检测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