Tomcat监测脚本的实现示例

实现效果

通过 Tomcat 监测脚本 按照一定的时间频度来检测Tomcat应用是否正常,如果进程不存在,则启动 Tomcat;如果进程存在而访问不正常,则杀掉进程,再启动 Tomcat。

脚本的主体

vi /home/dev/ctl/tomcat-inspector/image.sh
#!/bin/bash
echo $(date '+%Y-%m-%d %H:%M:%S')
whoami
JAVA_HOME=/opt/java/jdk1.8.0_40
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME
port=8086
sn="tomcat-image-$port"
th="/home/dev/tomcat/$sn"
url="http://you-app-server/"
tomcat=`ps -ef | grep java | grep $sn | grep $port | wc -l`
if [ $tomcat -eq 0 ]
then
  echo $sn stoped.
  echo starting $sn ......
  $th/bin/startup.sh
fi
if [ $tomcat -ge 1 ]
then
  tpid=`ps -ef | grep java | grep $sn | grep $port | awk '{print $2}'`
  echo $sn is running, pid = $tpid
  httpStatus=`curl -I $url 2>/dev/null | grep HTTP | awk '{print $2}'`
  echo $httpStatus
  if [[ -z "$httpStatus" || $httpStatus -ge 500 ]]
  then
    echo killing $sn ......
    kill -9 $tpid
    echo starting $sn ......
    $th/bin/startup.sh
  fi
fi

设定执行频度

crontab -e
*/5 * * * * /home/dev/ctl/tomcat-inspector/image.sh >> /home/dev/ctl/tomcat-inspector/logs/image.log 2>&1

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对我们的支持。

(0)

相关推荐

  • windows使用批处理发布web到tomcat并启动tomcat脚本分享

    复制代码 代码如下: @ECHO OFF@REM 部署WEB系统到Tomcatset date=%date:~0,10%set time=%time:~0,8%set currDate=%date% %time%echo 开始运行将工作空间里面编译后的代码拷贝到Tomcat中...%currDate% echo 设置参数set WORK_SPACE=J:\飘\IT\workspaceset PRJ_NAME=MyStruts1Prjset PRJ_WEB_ROOT=MyStruts1Prj\We

  • Tomcat日志文件定时清理备份的脚本

    以下脚本主要备份的日志文件为tomcat的catalina.out.localhost_access_log.yyyy-mm-dd.log日志和项目的日志文件,其中项目的日志文件格式为"projectname-yyyy-mm-dd.log",以下为备份脚本,具体的操作都有相应的注释,供大家参考,具体情况请根据日志文件的格式和要求来使用本脚本. #!/bin/sh ###### # 日志定时运行时间为每天0点1分 # 删除20天之前的日志文件,压缩一周之前的日志文件 # 日志文件时间是根

  • JAVA实现监测tomcat是否宕机及控制重启的方法

    本文实例讲述了JAVA实现监测tomcat是否宕机及控制重启的方法.分享给大家供大家参考.具体如下: Detector.java: import java.net.URL; import java.net.URLConnection; import java.util.Date; /** * * @author james * */ public class Detector { private static void keepTomcatAlive() throws NullPointerEx

  • linux自动重启tomcat脚本分享

    复制代码 代码如下: #!/bin/bash##chkconfig: 35 88 14#description: tomcat auto start script#script by okhelpercase "$1" instart)echo "Here is start script..."JAVA_HOME=/usr/jdk1.6.0_13;export JAVA_HOMEJRE_HOME=$JAVA_HOME/jre;export JRE_HOMEexpor

  • CentOS下停止Tomcat运行脚本代码

    代码验证通过,保留,以备后用 #!/bin/sh # # Firstly find the process of the tomcat.... TOMCAT_PROCESS_STR=`ps aux | grep 'java.*tomcat' | grep -v grep` PROCESS_ARRAY=(${TOMCAT_PROCESS_STR// / }) TOMCAT_PROCESS_ID=${PROCESS_ARRAY[1]} echo $TOMCAT_PROCESS_ID # # Seco

  • Linux Shell脚本实现检测tomcat

    Linux Shell脚本检测tomcat并自动重启 后台运行命令 sh xxx.sh & 查看后台任务:jobs 召唤到前台:fg jobs编号 可以删掉while循环的代码放到crontab里面定时执行,可以将脚本直接后台运行, #!/bin/bash while [ true ] do url="http://www.jb51.net/"; httpOK=`curl --connect-timeout 10 -m 60 --head --silent $url | awk

  • Linux中使用Crontab定时监测维护Tomcat应用程序的方法

    监测的应用接口: 新闻接口.天气接口 处理方法:应用接口不可用时自动重启Tomcat,并发送告警邮件给相关人员 #!/bin/bash #--------------------------------------------------------- # 功能说明: # 监控指定HTTP服务是否可用,如果不可用立即重启Tomcat # # 使用说明: # 1. 将此脚本放置在/home/opentsp/crontab/目录下. # 2. 修改脚本执行权下为可执行权限. # 3. 添加到定时任务

  • 解析Tomcat的启动脚本--startup.bat

    概述 我们通常使用 Tomcat 中的 startup.bat 来启动 Tomcat. 但是这其中干了一些什么事呢? 大家都知道一个 Java 程序需要启动的话, 肯定需要 main 方法, 那么这个 main 方法在哪呢? Tomcat 脚本中又是配置了一些什么参数呢, 什么情况下 Tomcat 会启动失败呢? 带着一些列的疑问我们来分析 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat startup.bat 脚本 该

  • 解析Tomcat的启动脚本--catalina.bat

    概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 catalina.bat 脚本. 至于 setclasspath.bat 这个脚本, 相信看完这一篇, 就可以自己看懂这个脚本了. 可以点击下载 [ setclasspath.bat 脚本 ]查看附注释的 setclasspath.bat 脚本 catalina.bat 这个脚本的代码有点多, 就单独弄

  • Shell脚本切割tomcat的日志文件

    鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢谢了) 1:废话少说,直接贴上脚本: #!/bin/sh log_dir=/var/log/tomcat monitor_file=$1 #tomcat目录下的catalina.out文件的绝对路径 file_size=`du $monitor_file | awk '{print $1}'` if

随机推荐