当前位置 博文首页 > 闫玉林的博客:使用Linux定时器crontab实现tomcat服务的可用性检

    闫玉林的博客:使用Linux定时器crontab实现tomcat服务的可用性检

    作者:[db:作者] 时间:2021-08-29 16:11

    crontab介绍

    • Linux crontab命令,是Linux的任务调度命令,可以让用户使用此命令设置定期执行程序,这个是操作系统安装后会自动启动的。
    • Linux任务调度主要分为系统任务和个人任务,我们主要使用它完成我们自己需要定期执行的某些程序。
    • 语法:crontab [ -u user ] file 或 crontab [ -u user ] { -l | -r | -e }
    • -u user是指定在某用户下执行,不设置就是默认自己
    • -l 是list的意思,列出所有的任务
    • -r 是remove的意思,删除所有任务
    • -e 是edit编辑的意思,可以使用它打开crontab,可以在里面编辑新增,默认是vi。编辑完保存自动生效。
    • 时间格式:f1 f2 f3 f4 f5 program
    • 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。可以参考菜鸟教程

    脚本介绍

    • 主要是通过ps -ef|grep命令查看进程是否存在,不存在则启动;如果你的tomcat进程假死,进程还在,则没办法使用此脚本重启;
    • set -m加下,防止使用脚本启动后,后期异常关闭
    • crontab最短一分钟一次,如果接受不了这个频率,可以采用其他方法监控重启服务;
    • crontab -e 进入编辑页面,在里面添加任务即可*/1 * * * * /bin/bash /home/static_protect.sh >> /home/protect_run.log 2>&1
    #!/bin/sh
    TOMCAT_PATH=/home/tomcat-static  #tomcat位置
    TOMCAT_BIN_PATH=$TOMCAT_PATH/bin #启动脚本位置
    SERVER_NAME=/home/tomcat-static/bin/tomcat #服务名称,保证唯一
    
    proc_num()
    {
            num=`ps -ef | grep $SERVER_NAME | grep -v grep | wc -l`
            return $num
    }
    proc_num
    number=$?
    echo $number
    if [ $number -eq 0 ]
    then
        #开始尝试启动
        ps -ef|grep -v grep|grep $SERVER_NAME | grep java |awk '{print "kill -9 "$2}'|sh
        sleep 1
    	
        set -m
        $TOMCAT_BIN_PATH/startup.sh
        sleep 50
    fi
    
    
    cs