• Linux下shell脚本监控Tomcat的状态并实现自动启动


    最近公司需要在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/ $//' build.sh

    第三:执行脚本./monitor.sh  

    如果有z字符输出不了:更改xshell字体

    3.把脚本加到crontab定时任务中

    每分钟检查一次

    打开/etc/crontab文件添加定时任务

     

  • 相关阅读:
    HDU 5640 King's Cake
    HDU 5615 Jam's math problem
    HDU 5610 Baby Ming and Weight lifting
    WHU1604 Play Apple 简单博弈
    HDU 1551 Cable master 二分
    CodeForces659C Tanya and Toys map
    Codeforces 960E 树dp
    gym 101485E 二分匹配
    Codeforces 961E 树状数组,思维
    Codeforces Round #473 (Div. 2) D 数学,贪心 F 线性基,模板
  • 原文地址:https://www.cnblogs.com/zzablog/p/9517579.html
Copyright © 2020-2023  润新知