Linux定时检测tomcat状态,宕掉时自动重启

废话少说,直接上脚本:

#!/bin/bash
#author:jgd
#Date:2017-09-15
#自动检测某个tomcat状态,异常时重启

# ---- Start ----

# 获取tomcat进程ID  ,根据自己实际情况进行修改,比如端口和tomcat名称
TomcatID=$(ps -ef |grep tomcat |grep 9085 |grep -w 'apache-tomcat-9.0.0.M21'|grep -v 'grep'|awk '{print $2}')
# 获得tomcat进程数,根据自己实际情况进行修改,比如端口和tomcat名称
TomcatCount=`ps -ef |grep tomcat |grep 9085 |grep -w 'apache-tomcat-9.0.0.M21'|grep -v 'grep'|wc -l`


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


# 定义要监控的页面地址,可根据自己实际工程进行修改
WebUrl=http://localhost:9085/CommonCloud/views/index.jsp


# 日志输出,根据自己服务器情况进行修改
GetPageInfo=/home/zyj13424063620/myshell/logs/9085/tomcatMonitor.info  
TomcatMonitorLog=/home/zyj13424063620/myshell/logs/9085/tomcatMonitor.log


Monitor()  
 {  
   echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"  
   if [ $TomcatCount -gt 0 ];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 "[info]页面访问出错,开始重启tomcat"  
         kill -9 $TomcatID   # 杀掉原tomcat进程
         sleep 3  
         rm -rf $TomcatCache # 清理tomcat缓存  
         echo "[info]现在开始重启tomcat..."
         echo "[info]请稍后..."
         $StartTomcat
      fi  
   else  
      echo "[error]tomcat进程不存在!"
      echo "[info]获取信息TomcatID:$TomcatID"
      echo "[info]获取信息TomcatCount:$TomcatCount"
      echo "[info]tomcat开始自动重启"     
      echo "[info]$StartTomcat,请稍候......"  
      rm -rf $TomcatCache  
      $StartTomcat   
   fi  
   echo "------------------------------"  
 }  

Monitor >>$TomcatMonitorLog


以上就是就检测并自动重启tomcat的shell脚本,需要在定时添加

编辑定时器命令:

crontab -e

例如:

Linux定时检测tomcat状态,宕掉时自动重启_第1张图片

每五分钟检测一次,即执行这个脚本一次。

进行编辑。

注意:脚本自动重启tomcat需要修改在tomcat的bin目录下的Catalina.sh,指定jdk或jre安装路径,比如添加

Linux定时检测tomcat状态,宕掉时自动重启_第2张图片

你可能感兴趣的:(linux)