zoukankan      html  css  js  c++  java
  • linux下的“定时器”:crontab

    1、概述

    crontab是用来设置在固定时间点或时间间隔执行某条指令,类似于时程表。使用-u user是指定user用户的时程表。

    2、参数

    -e[UserName] :调出编辑器,编辑定时任务,打开后里边有多重文本编辑器,可更具自己偏好选择,若未指定UserName,则是当前shell下的用户

    -r[UserName] :删除指定用户当前的时程表,则是当前shell下的用户

    -l[UserName] :列出指定用户当前的时程表,则是当前shell下的用户

    -v[UserName] :列出指定用户的cron作业状态,则是当前shell下的用户

    3、时程表的格式说明

     F1    F2  F3  F4  F5   program
    (分钟  小时 日   月  星期 作业命令)

    例如:5 */1 * * * /usr/sbin/ntpdate cms是指在每小时的第5分钟执行/usr/sbin/ntpdate cms这个命令。

    说明见下图:

    4、样例

    #每天早上6点10分
    10 6 * * * date

    #每两个小时
    0 */2 * * * date

    #晚上11点到早上8点之间每两个小时,包括早上8点
    0 23-7/2,8 * * * date

    #每个月的4号和每个礼拜一到礼拜三的早上11点
    0 11 4 * 1-3 date

    #1月1日早上4点
    0 4 1 1 * date

    编写执行命令时要注意当前的环境变量。

    5、与sleep配合实现秒级别的定时 

    如果你在终端直接执行:

    sleep 3s;/bin/date

    很明显的能看到,sleep可以延时执行命令,那么和crontab结合就实现了秒级别的定时,如下:

    * * * * * sleep 10s; /bin/date >>/tmp/date.txt
    * * * * * sleep 20s; /bin/date >>/tmp/date.txt
    * * * * * sleep 30s; /bin/date >>/tmp/date.txt
    * * * * * sleep 40s; /bin/date >>/tmp/date.txt
    * * * * * sleep 50s; /bin/date >>/tmp/date.txt

    这时候观察/temp/date.txt,就可看见每10秒有条时间记录。

    当然,sleep时间单位也有分、时、天(m, h, d),本例中只使用了秒。

  • 相关阅读:
    Javascript FP-ramdajs
    微信小程序开发
    SPA for HTML5
    One Liners to Impress Your Friends
    Sass (Syntactically Awesome StyleSheets)
    iOS App Icon Template 5.0
    React Native Life Cycle and Communication
    Meteor framework
    RESTful Mongodb
    Server-sent Events
  • 原文地址:https://www.cnblogs.com/leocook/p/linux_crontab.html
Copyright © 2011-2022 走看看