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”,拉你进程序员技术讨论群.
最新文章
- 蜥蜴(bzoj 1066)
- HAL驱动库学习--如何使用HAL库
- Linux系统man查询命令等级及意义
- javascript中重要概念-闭包-深入理解
- Android手机的 storage
- Windows中使用cmd实现自定义Service的安装与卸载
- 【Oracle连接字符串】【Oracle Net Manager 服务命名配置】【PL/SQL 登陆数据库】
- tcp断开连接,4次握手,为什么wireshark 只能抓到3个包?
- POJ 3984	迷宫问题 记录路径的广搜
- Matlab 将两个图像进行分离 已知其中一个图像
- 实验性质的JIT compiler(Ruby2.6)
- lr-web services协议
- C#调用存储过程执行缓慢,但在数据库中执行却很快的问题
- python bytes类型去除尾部字节
- windows phone开发-windows azure mobile service使用入门
- Nhibernate学习的第二天
- Web界面进行用户管理
- Spring Cloud (6)config 客户端配置 与GitHub通信
- git stash命令使用手册
- Python 保存数据的方法(4种方法)