r3f.cn
GitHub Repo stars

Cron

Cron 最适合用于调度重复性任务。一次性任务的调度可以使用相关的 at 工具来完成。

#Crontab 格式

#格式

分  时 日  月  周

*    *    *    *    *  要执行的命令
┬    ┬    ┬    ┬    ┬
│    │    │    │    └─  星期几 (0=周日 .. 6=周六)
│    │    │    └──────  月份 (1..12)
│    │    └───────────  日期 (1..31)
│    └────────────────  小时 (0..23)
└─────────────────────  分钟 (0..59)

字段 范围 特殊字符
分钟 0 - 59 , - * /
小时 0 - 23 , - * /
日期 1 - 31 , - * ? / L W
月份 1 - 12 , - * /
星期几 0 - 6 , - * ? / L #

#示例

示例 描述
*/15 * * * * 每 15 分钟
0 * * * * 每小时
0 */2 * * * 每 2 小时
15 2 * * * 每天凌晨 2:15
15 2 * * ? 每天凌晨 2:15
10 9 * * 5 每周五上午 9:10
0 0 * * 0 每周日午夜
15 2 * * 1L 每月最后一个周一的凌晨 2:15
15 0 * * 4#2 每月第二个周四的凌晨 00:15
0 0 1 * * 每月 1 号 (每月)
0 0 1 1 * 每年 1 月 1 号 (每年)
@reboot 每次重启时
(非标准)

#特殊字符串

特殊字符串 含义
@reboot 运行一次,在系统启动时 (非标准)
@yearly 每年运行一次,"0 0 1 1 *" (非标准)
@annually (与 @yearly 相同) (非标准)
@monthly 每月运行一次,"0 0 1 * *" (非标准)
@weekly 每周运行一次,"0 0 * * 0" (非标准)
@daily 每天运行一次,"0 0 * * *" (非标准)
@midnight (与 @daily 相同) (非标准)
@hourly 每小时运行一次,"0 * * * *" (非标准)

#Crontab 命令

- -
crontab -e 编辑或创建 crontab 文件(如果尚不存在)。
crontab -l 显示 crontab 文件。
crontab -r 删除 crontab 文件。
crontab -v 显示上次编辑 crontab 文件的时间。
(非标准)

#特殊字符

特殊字符 描述
星号(*) 匹配字段中的所有值或任何可能的值。
连字符(-) 用于定义范围。例如:第五个字段(星期几)中的 1-5 表示每个工作日,即周一到周五。
斜杠 (/) 第一个字段(分钟)/15 表示每十五分钟或范围的增量。
逗号 (,) 用于分隔项目。例如:第二个字段(小时)中的 2,6,8 表示在凌晨 2 点、早上 6 点和早上 8 点执行。
L 仅允许用于日期或星期几字段,星期几字段中的 2L 表示每月的最后一个周二。
井号 (#) 仅允许用于星期几字段,其后必须跟随 1 到 5 范围内的数字。例如,4#1 表示给定月份的“第一个周四”。
问号 (?) 可以代替 '*',并允许用于日期和星期几字段。在 cron 表达式中,使用限制为日期或星期几字段之一。

#另请参阅