Linux+crontab 监控tomcat, shutdown后自动重启tomcat服务

执行步骤:

参考:可以先了解crontab

使用yum安装crontab服务

 yum install vixie-cron

安装成功, 看一下常用命令

 /sbin/service crond start //启动服务

 /sbin/service crond stop //关闭服务

 /sbin/service crond restart //重启服务

 /sbin/service crond reload //重新载入配置

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start

查看crontab服务是否已设置为开机启动,执行命令:ntsysv

在CentOS系统中加入开机自动启动: chkconfig --level 35 crond on


1. 创建目录:  /usr/tomcat_sh/monitor

 

2. 放入shell文件: /usr/tomcat_sh/monitor.sh

 @脚本内容:

#!/bin/sh

 

#定义环境变量(要改成自己的jdk相关地址)

 

#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_79/bin

#export JAVA_HOME=/usr/java/jdk1.7.0_79

#export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

#export PATH=$PATH:$JAVA_HOME/bin

 

# 获取tomcat进程ID(这里注意tomcat7要改成自己的tomcat目录名)

TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-7.0.85'|grep -v 'grep'|awk '{print $2}') 

# tomcat启动程序(这里注意要改成自己tomcat实际安装的路径) 

StartTomcat=/usr/local/tomcat/apache-tomcat-7.0.85/bin/startup.sh

TomcatCache=/usr/local/tomcat/apache-tomcat-7.0.85/work

# 自己定义要监控的页面地址,页面越简单越好,比如:页面上写个success即可

WebUrl=http://127.0.0.1:8080/index.jsp

# 日志输出 (自己定义地址,用于输出监控日志和监控报错日志)

TomcatMonitorLog=/usr/java/monitor/TomcatMonitor.log 

GetPageInfo=/usr/java/monitor/PageInfo.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


3. 授权: chmod a+xmonitor.sh

4. 加入crontab执行: crontab –e

                     */1 * * * */usr/tomcat_sh/monitor.sh     #一分钟检测一次

@说明:执行时间 * * * * *

·         minute 表示分钟,可以是从059之间的任何整数。

·         hour:表示小时,可以是从023之间的任何整数。

·         day:表示日期,可以是从131之间的任何整数。

·         month:表示月份,可以是从112之间的任何整数。

·         week:表示星期几,可以是从07之间的任何整数,这里的07代表星期日。

·         command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在以上各个字段中,还可以使用以下特殊字符:

·         星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

·         逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

·         中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

·         正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。


5. 重新加载crontab配置: service crond reload

遇到的问题:

问题描述:sh文件中,在win环境下,用WinSCP编辑,出现如下错误:

-bash: ./start.sh:/bin/sh^M: bad interpreter: No such file or directory

 

解决方案:这是win的编码引起的,可通过如下解决。

1.查看该文件:vim  monitor.sh

2.查看该错误文件的格式(一般报错的文件格式是DOS):  

  :set ff

3.修改该文件格式为UNIX:

  :set ff=unix

4.再保存。

  :wq!

 

@若有疑问,可以私信给我,可以相互讨论!
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值