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字体
3.把脚本加到crontab定时任务中
每分钟检查一次
打开/etc/crontab文件添加定时任务
总结
以上所述是小编给大家介绍的linux下shell脚本监控tomcat的状态并实现自动启动的步骤,希望对大家有所帮助
上一篇: 详解Linux中的awk命令