通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。

  1. 进入编辑状态

    crontab -e

  2. 添加定时任务(这里是每分钟一次)

            • sh /root/monitor.sh
  1. 编辑任务脚本 /root/monitor.sh

    ! /bin/sh

    proc_name="ss-server" #进程名

    proc_num() #查询进程数量
    {

    num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
    return $num

    }

    proc_num
    number=$? #获取进程数量
    if [ $number -eq 0 ] #如果进程数量为0
    then #重新启动服务器,或者扩展其它内容。

    service sss-libev start
    echo "start 服务" >>cron.log

    fi

  2. 启动 cron 服务,检查 cron 状态(在ubuntu中服务名为cron)

    root@wonpn:~# /etc/init.d/cron start
    root@wonpn:~# /etc/init.d/cron status
    ● cron.service - Regular background program processing daemon
    Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
    Active: active (running) since Fri 2018-07-13 02:43:02 EDT; 23h ago

    Docs: man:cron(8)

    Main PID: 222 (cron)
    CGroup: /system.slice/cron.service

        └─222 /usr/sbin/cron -f
    

参考:http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html