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

  • 相关阅读:
    【转】汽车CAN总线
    【转】I2C总线协议
    【转】SPI总线协议
    【转】结构struct 联合Union和枚举Enum的细节讨论
    复合类型变量其首地址的几种表示方式
    【转】四款经典3.7v锂电池充电电路图详解
    【转】crc16几种标准校验算法及c语言代码
    【转】 CRC循环冗余校验码
    对STM32库函数中 assert 函数的认知
    【转】用宏定义代替printf函数
  • 原文地址:https://www.cnblogs.com/leocook/p/linux_crontab.html
Copyright © 2011-2022 走看看