在 crontab 中,星期几字段是否从0 - 6
或1 -7
?
我看到这方面的信息相互矛盾。维基百科状态0-6
和我见过的其他网站是1-7
.
还有什么含义或使用0
或7
不正确?即 cron 还会运行吗?
0
并且7
都代表星期日,你可以使用你想要的,所以写 0-6 或 1-7 有相同的结果。
此外,正如@Henrik 所建议的,可以用缩短的日期名称替换数字,例如MON
,THU
等:
0 - Sun Sunday
1 - Mon Monday
2 - Tue Tuesday
3 - Wed Wednesday
4 - Thu Thursday
5 - Fri Friday
6 - Sat Saturday
7 - Sun Sunday
从图形上看,* * * * * command to be executed
代表:
分钟 | 小时 | 一个月的一天 | 月 | 星期几 | |
---|---|---|---|---|---|
(0-59) | (0-23) | (1-31) | (1-12) | (1-7) | |
* | * | * | * | * | 要执行的命令 |
或使用旧样式:
┌────────── minute (0 - 59)
│ ┌──────── hour (0 - 23)
│ │ ┌────── day of month (1 - 31)
│ │ │ ┌──── month (1 - 12)
│ │ │ │ ┌── day of week (0 - 6 => Sunday - Saturday, or
│ │ │ │ │ 1 - 7 => Monday - Sunday)
↓ ↓ ↓ ↓ ↓
* * * * * command to be executed
最后,如果要指定日期,可以用逗号分隔日期,例如SUN,MON,THU
仅在星期日执行命令,在星期四星期一执行命令。
您可以在Wikipedia 关于 Cron 的文章中阅读更多详细信息,并使用crontab.guru在线检查 cron 表达式。
:-) Sunday | 0 -> Sun
|
Monday | 1 -> Mon
Tuesday | 2 -> Tue
Wednesday | 3 -> Wed
Thursday | 4 -> Thu
Friday | 5 -> Fri
Saturday | 6 -> Sat
|
:-) Sunday | 7 -> Sun
正如您在上面看到的,并且如前所述,数字0
和7
都分配给星期日。还列出了英文缩写的星期几,也可以在 crontab 中使用。
数字或缩写使用示例
15 09 * * 5,6,0 command
15 09 * * 5,6,7 command
15 09 * * 5-7 command
15 09 * * Fri,Sat,Sun command
四个例子都是一样的,每周五、周六、周日的 9.15 点执行一个命令。
详细地
有两个数字0
和7
星期天对于编写以 开头0
或结尾的工作日范围很有用7
。因此,您可以编写范围以星期日开始或以星期日结束,例如0-2
或5-7
(范围必须以较小的数字开头,并且必须以较高的数字结束)。缩写不能用于定义工作日范围。
您还可以使用Mon
星期一、Tue
星期二等日期名称。这样更人性化。