欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤

程序员文章站 2023-10-30 17:32:34
最近公司需要在linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于linux下有shell脚本可以实现此效果,下面是lin...

最近公司需要在linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于linux下有shell脚本可以实现此效果,下面是linux下shell脚本监控tomcat的状态并实现自动启动的步骤。

1.编写shell脚本monitor.sh

#!/bin/sh
# func:自动监控tomcat脚本并且执行重启操作
# author:eaglehao
# date:2018-04-08
# define
# 获取tomcat进程id(其中[grep -w 'tomcat']代码中的tomcat需要替换为你的tomcat文件夹名)
tomcatid=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v 'grep'|awk '{print $2}')
# tomcat启动程序(这里注意tomcat实际安装的路径)
starttomcat=/opt/tomcat/bin/startup.sh
tomcatcache=/opt/tomcat/work
#定义要监控的页面地址
weburl=http://localhost:8080
#日志输出
getpageinfo=/tmp/tomcatmonitor.info
tomcatmonitorlog=/tmp/tomcatmonitor.log
monitor()
{
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})
if [ $tomcatservicecode -eq 200 ];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

2.测试shell脚本monitor.sh是否允许成功

第一:执行脚本./monitor.sh   

如果报权限错误:chmod 777 monitor.sh

第二:执行脚本./monitor.sh  

如果报/bin/bash^m:,坏的解释器,没有那个文件或目录  :sed -i 's/\r$//' build.sh

第三:执行脚本./monitor.sh  

如果有\z字符输出不了:更改xshell字体

Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤

3.把脚本加到crontab定时任务中

每分钟检查一次

打开/etc/crontab文件添加定时任务

Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤

总结

以上所述是小编给大家介绍的linux下shell脚本监控tomcat的状态并实现自动启动的步骤,希望对大家有所帮助