linux监测tomcat服务
原文链接:https://blog.csdn.net/qq_37936542/article/details/81086928
项目上线之后,tomcat服务器有时候会莫名其妙的挂掉,利用shell写一个看门狗程序,监测tomcat异常关闭后,重启服务器。
1:新建脚本文件,赋予权限
-
touch start.sh -
chmod 755 start.sh
2:编写脚本文件
-
#!/bin/sh -
# 自动监控tomcat并且在异常时执行重启操作 -
# 定义java环境变量 -
export JAVA_HOME=/usr/local/myApp/jdk1.8 -
# 获取端口号为8080的tomcat进程ID(考虑到有多个tomcat服务器,用8080关键词) -
# grep -v grep 排除grep命令自带的进程id -
# awk '{print $2}' 只保留结果中第二列的值 -
pid=$(ps -ef |grep 8080|grep -v grep|awk '{print $2}') -
# tomcat启动脚本 -
start=/usr/local/myApp/tomcat8080/bin/startup.sh -
# tomcat缓存 -
cache=/usr/local/myApp/tomcat8080/work -
# tomcat链接地址 -
url=http://localhost:8080 -
# 监控时的日志输出 -
log=/tmp/my.log -
#linux垃圾回收站 -
hole=/dev/null -
function doIt() -
{ -
if [ $pid ] -
then -
echo "tomcat进程ID存在" -
code=$(curl -s -o $hole -m 10 --connect-timeout 10 $url -w %{http_code}"\n") #测试链接是否可以正常访问 -
if [ $code -eq 200 ] -
then -
echo "测试链接正常" -
else -
echo "测试链接失败,重启tomcat" -
kill -9 $pid # 杀掉进程 -
sleep 5 -
rm -rf $cache # 清理tomcat缓存 -
$start -
fi -
else -
echo "tomcat进程id不存在,重启中...." -
rm -rf $cache -
$start -
fi -
echo "------------------------------" -
} -
doIt>>$log #执行函数,并打印日志
3:设置定时执行start.sh文件
crontab -e
添加内容:
*/30 * * * * /tmp/mySh/start.sh #每30分钟执行一次
4:启动定时任务
-
service crond start #启动定时任务 -
service crond status #查看状态 -
service crond restart #重启定时任务 -
service crond stop #停止定时任务
5:查看定时任务
crontab -l
注意:某些自己用yum install xxx安装的系统命令,在shell脚本文件执行时可能会失效,这时候使用
which xxx 查看命令的安装目录,然后在shell脚本文件中使用绝对路径就ok了
参考文章:https://blog.csdn.net/zzq900503/article/details/50723191
关注「编程微刊」公众号 ,在微信后台回复「领取资源」,获取IT资源300G干货大全。
公众号回复“1”,拉你进程序员技术讨论群.

浙公网安备 33010602011771号