Linux定时检测tomcat状态,宕掉时自动重启的方法,linuxtomcat
Linux定时检测tomcat状态,宕掉时自动重启的方法,linuxtomcat
废话少说,直接上脚本:
#!/bin/bash
#author:jgd
#Date:2017-09-15
#自动检测某个tomcat状态,异常时重启
# ---- Start ----
# 获取tomcat进程ID ,根据自己实际情况进行修改,比如端口和tomcat名称
TomcatID=$(ps -ef |grep tomcat |grep 9085 |grep -w 'apache-tomcat-9.0.0.M21'|grep -v 'grep'|awk '{print $2}')
# 获得tomcat进程数,根据自己实际情况进行修改,比如端口和tomcat名称
TomcatCount=`ps -ef |grep tomcat |grep 9085 |grep -w 'apache-tomcat-9.0.0.M21'|grep -v 'grep'|wc -l`
# tomcat启动程序(这里注意tomcat实际安装的路径)
StartTomcat=/home/zyj13424063620/tomcat9085/apache-tomcat-9.0.0.M21/bin/startup.sh
TomcatCache=/home/zyj13424063620/tomcat9085/apache-tomcat-9.0.0.M21/work
# 定义要监控的页面地址,可根据自己实际工程进行修改
WebUrl=http://localhost:9085/CommonCloud/views/index.jsp
# 日志输出,根据自己服务器情况进行修改
GetPageInfo=/home/zyj13424063620/myshell/logs/9085/tomcatMonitor.info
TomcatMonitorLog=/home/zyj13424063620/myshell/logs/9085/tomcatMonitor.log
Monitor()
{
echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [ $TomcatCount -gt 0 ];then # 这里判断TOMCAT进程是否存在
echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."
# 检测是否启动成功(成功的话页面会返回状态"200")
TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
if [ $TomcatServiceCode -eq 200 ];then
echo "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,页面正常......"
else
echo "[error]tomcat页面出错,状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
echo "[info]页面访问出错,开始重启tomcat"
kill -9 $TomcatID # 杀掉原tomcat进程
sleep 3
rm -rf $TomcatCache # 清理tomcat缓存
echo "[info]现在开始重启tomcat..."
echo "[info]请稍后..."
$StartTomcat
fi
else
echo "[error]tomcat进程不存在!"
echo "[info]获取信息TomcatID:$TomcatID"
echo "[info]获取信息TomcatCount:$TomcatCount"
echo "[info]tomcat开始自动重启"
echo "[info]$StartTomcat,请稍候......"
rm -rf $TomcatCache
$StartTomcat
fi
echo "------------------------------"
}
Monitor >>$TomcatMonitorLog
以上就是就检测并自动重启tomcat的shell脚本,需要在定时添加
编辑定时器命令:
crontab -e
例如:
每五分钟检测一次,即执行这个脚本一次。
进行编辑。
注意:脚本自动重启tomcat需要修改在tomcat的bin目录下的Catalina.sh,指定jdk或jre安装路径,比如添加
评论暂时关闭