服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|

服务器之家 - 服务器系统 - Linux - Linux中使用Crontab定时监测维护Tomcat应用程序的方法

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

2021-10-21 14:52zhoulf Linux

定时监测发布的某项应用程序是否可用,如果不可用,立即执行处理措施,实现自动化运维工作

监测的应用接口: 新闻接口、天气接口
处理方法:应用接口不可用时自动重启Tomcat,并发送告警邮件给相关人员

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
#---------------------------------------------------------
# 功能说明:
#   监控指定HTTP服务是否可用,如果不可用立即重启Tomcat
#
# 使用说明:
#   1. 将此脚本放置在/home/opentsp/crontab/目录下。
#   2. 修改脚本执行权下为可执行权限。
#   3. 添加到定时任务中,定时执行时间(建议为20分钟)
#   4. 修改邮件发送人员信息列表(当服务重启时发邮件给相关人员)
#                    - 周凌飞(2014-08-13)
#---------------------------------------------------------
export LC_ALL=zh_CN.UTF-8
 
#网站地址、参数
SERVER_NAME="趣驾云接口服务"
URL_2="http://127.0.0.1/get_rss_news?p=%7b%27chId%27:%27TIYU%27%7d"
KeyWorld_2='<title>'
URL_3="http://127.0.0.1/get_json_weather?p=%7blon:116.407617,lat:39.993956,date:1%7d"
KeyWorld_3='temperature'
 
#邮件发送列表
mail_ary=(
xxxxxxxxx@navinfo.com
xxxxxxxxx@navinfo.com
xxxxxxxxx@navinfo.com
)
 
#接口调用失败的处理方法
function doFail(){
    local ipinfo=$(ifconfig |sed -n '2p'|awk '{print substr($2,6)}');
    # 发送邮件
    for _v in ${mail_ary[*]} ; do
        echo "[$SERVER_NAME 异常] - [$(date -d "0 min" +"%Y-%m-%d %H:%M:%S")] - [请求地址: $1] - [请求返回码: $2]" | mail -s ${ipinfo}服务异常 ${_v}
    done
    # 写入日志
    echo "[ERROR] - [$(date -d "0 min" +"%Y-%m-%d %H:%M:%S")] - 返回码[$2] - 重启Tomcat服务" >> detect-http.log
    # 关闭Tomcat
    sh /home/opentsp/crontab/ibr-shutdown.sh
    exit;
}
 
#请求超时时间设置
TIME_OUT=40
function doCheck(){
    local URL_X=$1;
    local KeyWorld_X=$2;
    HTTP_STATUS_CODE=`curl -m $TIME_OUT -o /dev/null -s -w "%{http_code}" "${URL_X}"`
    if [ $HTTP_STATUS_CODE != 200 ];then
        #请求失败
        echo "-> Fail - 返回码${HTTP_STATUS_CODE}";
        doFail ${URL_X} ${HTTP_STATUS_CODE};
    else
        #服务器正常响应,检查返回内容
        if curl -m ${TIME_OUT} -s ${URL_X} | grep -q ${KeyWorld_X};then
            echo "-> SUCCESS";
        else
            echo "->> Fail";
            # 返回内容错误处理
            doFail ${URL_X} ${HTTP_STATUS_CODE};
        fi
    fi
}
 
#
#检查 - 新闻
doCheck ${URL_2} ${KeyWorld_2}
#检查 - 天气
doCheck ${URL_3} ${KeyWorld_3}

将以上代码放入到Linux的定时任务中即可,定时任务时间建议为20分钟一次。

延伸 · 阅读

精彩推荐
  • Linux在终端中用默认程序打开文件

    在终端中用默认程序打开文件

    在Linux环境下工作,大部分时间都是在与终端打交道,经常会遇到要查看某个文件,比如一个图片或者一个word文档(不能在终端中直接查看的)。这时通常...

    linux教程网3672019-11-11
  • Linuxlinux cat命令使用方法

    linux cat命令使用方法

    Linux Cat命令的一般用法这里我就不在提了,在baidu就可以直接收到相关资料,这里就不说了,下面谈谈Linux Cat命令的使用方法 ...

    linux命令大全5252019-12-17
  • LinuxLinux修改fstab文件后 系统无法启动的解决方法

    Linux修改fstab文件后 系统无法启动的解决方法

    修改linux下的/etc/fstab文件,重启系统时无法正常启动,出现这样的问题我们应该如何解决呢?请参考本篇文章,简简单单4个步骤帮你解决这个问题,需要的...

    Linux教程网5122019-11-01
  • LinuxLinux磁盘管理之df命令详细介绍和使用实例(统计文件或目录的磁盘占用情况)

    Linux磁盘管理之df命令详细介绍和使用实例(统计文件或目录的磁

    Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的 ...

    Linux命令大全3802019-11-16
  • Linux五个常用的Linux监控脚本代码

    五个常用的Linux监控脚本代码

    为大家提供五个常用Linux监控脚本(查看主机网卡流量、系统状况监控、监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告、监控CPU和内存的使用...

    Linux教程网2232019-12-06
  • LinuxLinux操作系统下设置基本网络参数四种方法

    Linux操作系统下设置基本网络参数四种方法

    在Red Hat Linux 6.0系统中,自带有Netscape浏览器,让Linux通过以太网卡访问Internet时,必须对Linux系统进行相应的配置,诸如主机、域名、网关、路由器等。在实...

    Linux教程网8382019-12-01
  • Linuxlinux怎么使用命令返回上一级目录?

    linux怎么使用命令返回上一级目录?

    linux怎么使用命令返回上一级目录?linux系统都是使用命令操作的,该怎么返回上一级目录呢?下面我们就来看看详细的教程,需要的朋友可以参考下 ...

    百度经验19322020-04-25
  • LinuxLinux date日期格式及加减运算

    Linux date日期格式及加减运算

    这篇文章主要介绍了Linux date日期格式及加减运算,需要的朋友可以参考下...

    脚本之家4142019-06-12