Crontab 定时任务使用

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

  1. 进入编辑状态

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

    * * * * * sh /root/monitor.sh
    
  3. 编辑任务脚本 /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  
    
  4. 启动 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

评论