• 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),本例中只使用了秒。

  • 相关阅读:
    B
    给定二叉树先序、中序遍历序列,求后序遍历
    24点游戏dfs求解
    设计模式之单例模式
    生产者—消费者模式示例
    LeetCode(3):Longest Substring Without Repeating Characters
    LeetCode(5):Longest Palindromic Substring
    LeetCode(60):Permutation Sequence
    LeetCode(50):Pow(x,n)
    LeetCode(69):Sqrt(x)
  • 原文地址:https://www.cnblogs.com/leocook/p/linux_crontab.html
Copyright © 2020-2023  润新知