248

在 crontab 中,星期几字段是否从0 - 61 -7

我看到这方面的信息相互矛盾。维基百科状态0-6和我见过的其他网站是1-7.

还有什么含义或使用07不正确?即 cron 还会运行吗?

4

3 回答 3

456

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 表达式。

于 2013-09-20T14:26:22.057 回答
116
    :-) Sunday    |    0  ->  Sun
                  |  
        Monday    |    1  ->  Mon
       Tuesday    |    2  ->  Tue
     Wednesday    |    3  ->  Wed
      Thursday    |    4  ->  Thu
        Friday    |    5  ->  Fri
      Saturday    |    6  ->  Sat
                  |  
    :-) Sunday    |    7  ->  Sun

正如您在上面看到的,并且如前所述,数字07都分配给星期日。还列出了英文缩写的星期几,也可以在 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 点执行一个命令。

详细地

有两个数字07星期天对于编写以 开头0或结尾的工作日范围很有用7。因此,您可以编写范围以星期日开始或以星期日结束,例如0-25-7(范围必须以较小的数字开头,并且必须以较高的数字结束)。缩写不能用于定义工作日范围。

于 2014-11-18T12:45:44.503 回答
11

您还可以使用Mon星期一、Tue星期二等日期名称。这样更人性化。

于 2014-11-09T17:13:37.277 回答