在crontab中,星期的一天字段是从0 - 6还是1 -7运行?
我看到了相互矛盾的信息。维基百科上是0-6,我看到的其他网站是1-7。
还有,0和7用错了又意味着什么呢?例如,cron还能运行吗?
在crontab中,星期的一天字段是从0 - 6还是1 -7运行?
我看到了相互矛盾的信息。维基百科上是0-6,我看到的其他网站是1-7。
还有,0和7用错了又意味着什么呢?例如,cron还能运行吗?
当前回答
你也可以使用日期名称,比如Mon表示星期一,Tue表示星期二,等等。它更人性化。
其他回答
:-) 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表示星期二,等等。它更人性化。
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
图形上,要执行的* * * * *命令表示:
minute | hour | day of month | month | day of week | |
---|---|---|---|---|---|
(0-59) | (0-23) | (1-31) | (1-12) | (1-7) | |
* | * | * | * | * | command to be executed |
或者使用旧的风格:
┌────────── 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将只在星期日执行命令,星期一在星期四执行命令。
您可以在维基百科关于Cron的文章中阅读更多细节,并通过crontab.guru在线查看Cron表达式。