crontab

Table of Contents

crontab 是 Linux 下的定时器。常见的使用方式:

user 是可选的,如果不设置则表示当前用户。

1 基本配置

基本格式:

* * * * * command

分别表示,分、时、日、月、周 和 执行命令。

  • 分,=0-59= , 每分钟用 * 或者 */1 表示
  • 时,=0-23= , 1 表示凌晨一点
  • 天,=1-31=
  • 月,=1-12=
  • 周,=0-6= ,从星期天开始
  • command,就是执行命令,使用时请使用命令的绝对路径,比如 /user/local/bin/python 而不是 python

2 配置实践

以分钟为例,

  • crontab 最小的单位是 分钟 ,所以没有比分钟更小的粒度了。
  • / 表示 每=,在分钟上 =*/2 表示每两分钟,=*/1= 跟 * 相同表示每分钟
  • 直接写数值表示的是固定时间触发,=2= 表示 2 分的时候执行
  • a-b 表示时间段,=2-10= 表示 2 到 10 分钟之间每分钟都执行
  • a,b,c 逗号分隔,表示该时间点触发,=10,30= 表示 10 分和 30 分时执行
  • 如果你不关心命令的执行结果,可以在命令后添加 > /dev/null 2>&1 ,也可以将结果定向到某个文件中,方便出错后查看

3 crontab 样例

  • 0 0 * * * /data/backupdb :在每天的 00:00 备份 DB
  • */2 * * * * /data/ping :每两分钟做一次 ping 检测
  • 30 18 * * * 5 /data/weeky :每周五的 18:30 发周报,你懂的
  • * */2 * * * /data/backupdb :每两小时备份一次 DB
  • 0 9 * * 1-5 /data/sign :每周的周一到周五的早上 09:00 签到

Date: 2017-12-04 11:37:43

Author: JerryZhang