创建监控脚本monitor.sh
#!/bin/shfunc:自动监控 tomcat 脚本并且执行重启操作
DEFINE
获取 tomcat 进程 ID
TomcatID=$(ps -ef |grep tomcat |grep -w '/data/tomcat-z-app'|grep -v 'grep'|awk '{print $2}')
tomcat 启动程序(这里注意 tomcat 实际安装的路径)
StartTomcat=/data/tomcat-z-app/bin/startup.sh
TomcatCache=/data/tomcat-z-app/work定义要监控的页面地址
WebUrl=http://127.0.0.1:8091/cm-info-app/remoting/serviceExporter
日志输出
GetPageInfo=/tmp/TomcatMonitor.Info
TomcatMonitorLog=/tmp/TomcatMonitor.logMonitor()
{
echo "[info]开始监控 tomcat...[$(date +'%F %H:%M:%S')]"
if [ $TomcatID ];then # 这里判断 TOMCAT 进程是否存在
echo "info-当前 tomcat 进程 ID 为:$TomcatID,继续检测页面..."
# 检测是否启动成功(成功的话页面会返回状态"200")
TomcatServiceCode=(curl -s -o GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
TureCode=405
if [ "TomcatServiceCode" -eq "TureCode" ];then
echo "info-页面返回码为 $TomcatServiceCode,tomcat 启动成功,测试页面正常......"
else
echo "error-tomcat 页面出错,请注意......状态码为TomcatServiceCode,错误日志已输出到GetPageInfo"
echo "error-页面访问出错,开始重启 tomcat"
kill -9 $TomcatID # 杀掉原 tomcat 进程
sleep 3
rm -rf $TomcatCache # 清理 tomcat 缓存
$StartTomcat
fi
else
echo "error-tomcat 进程不存在!tomcat 开始自动重启..."
echo "info-$StartTomcat,请稍候......"
rm -rf $TomcatCache
$StartTomcat
fi
echo "------------------------------"
}
Monitor >> $TomcatMonitorLog
然后将脚本加入crontab
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于