Linux定时检查某个tomcat状态,挂掉重启

1.在某个文件夹下创建脚本文件:touch xxx.sh;

2.对该脚本赋予执行权限:chmod +x xxx.sh;

3.编辑该脚本,vim xxx.sh;

4.复制如下内容:

#自动检测某个tomcat状态,异常时重启,现在检测的是使用了9080端口的tomcat,因为我服务器是部署多个tomcat的
#jgd

# 获取tomcat开了9080端口的进程ID,根据实际情况修改端口,要是只有一个tomcat可以去掉grep 9080
TomcatID=$(ps -ef |grep tomcat |grep 9080 |grep -w 'apache-tomcat-9.0.0.M21'|grep -v 'grep'|awk '{print $2}')

# tomcat启动程序(这里注意tomcat实际安装的路径)  
StartTomcat=/home/zyj13424063620/tomcat9080/apache-tomcat-9.0.0.M21/bin/startup.sh  
TomcatCache=/home/zyj13424063620/tomcat9080/apache-tomcat-9.0.0.M21/work


# 定义要监控的页面地址,建议跟上具体项目xxx  ,建议 具体到某个页面或接口
WebUrl=http://localhost:9080/xxx

# 日志输出,根据实际情况设置路径,并创建文本
GetPageInfo=/home/zyj13424063620/myshell/logs/tomcatMonitor.info  
TomcatMonitorLog=/home/zyj13424063620/myshell/logs/tomcatMonitor.log


Monitor()  
 {  
   echo "[info]开始监控tomcat9080...[$(date +'%F %H:%M:%S')]"  
   if [ $TomcatID ];then  # 这里判断TOMCAT进程是否存在  
      echo "[info]当前tomcat9080进程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,tomcat9080启动成功,测试页面正常......"  
      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进程不存在!tomcat9080开始自动重启..."  
      echo "[info]$StartTomcat,请稍候......"  
      rm -rf $TomcatCache  
      $StartTomcat   
   fi  
   echo "------------------------------"  
 }  
Monitor >>$TomcatMonitorLog

5.修改tomcat配置,tomcat下bin目录,编辑vim catalina.sh,加入如下内容:

export  JAVA_HOME=/home/gongzi/http/jdk1.6.0_26
export  JRE_HOME=/home/gongzi/http/jdk1.6.0_26/jre
注:根据jdk实际目录

6.设置定时器,命令crontab -e,进入定时器编辑,按i进行编辑,加入如下内容:

*/5 * * * * /home/zyj13424063620/myshell/test.sh

保存退出(命令跟vimy一样),注:根据脚本实际路径填写,这里的意思是每隔五分钟执行一次

到这里就可以了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值