【Linux】crontab定时任务

Linux crontab是用来定期执行程序的命令。

  • 查看定时任务
    1
    crontab -l
  • 编辑定时任务
    1
    crontab -e
  • 删除定时任务
    1
    crontab -d
    说明:以上几个命令均没有添加用户角色信息,默认为编辑当前用户的crontab定时任务。

crontab内容格式:

1
f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。

  • 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推
  • 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
  • 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
  • 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推
    1
    2
    3
    4
    5
    6
    7
    8
    *    *    *    *    *
    - - - - -
    | | | | |
    | | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
    | | | +---------- 月份 (1 - 12)
    | | +--------------- 一个月中的第几天 (1 - 31)
    | +-------------------- 小时 (0 - 23)
    +------------------------- 分钟 (0 - 59)

eg:

  • 每一分钟执行一次 /bin/ls
    1
    * * * * * /bin/ls
  • 在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup
    1
    0 6-12/3 * 12 * /usr/bin/backup
  • 每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….执行 echo “haha”
    1
    20 0-23/2 * * * echo "haha"