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 签到

在线编辑:https://crontab.guru/ 挺好用。

First created: 2017-12-04 11:37:43
Last updated: 2022-12-11 Sun 12:49
Power by Emacs 29.0.91 (Org mode 9.6.6)