Crontab Day of the Week语法

Mar*_*ace 187 linux sysadmin cron crontab

在crontab中,"星期几"字段是运行0 - 6还是1 -7

我看到有关这方面的相互矛盾的信息.维基百科国家0-6和我见过的其他网站1-7.

还有什么意思或使用07错误?即cron仍然会运行?

fed*_*qui 346

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
Run Code Online (Sandbox Code Playgroud)

图形:

 ??????????? 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
Run Code Online (Sandbox Code Playgroud)

最后,如果您想要指定日期,您可以使用逗号分隔日期,例如SUN,MON,THU,仅在星期日,星期一星期四将执行该命令.

您可以在维基百科关于Cron的文章中阅读更多详细信息.

  • 请注意,你做不到:'Sat-Sun`,只有`6-7`或'Sat,Sun` (11认同)
  • 好吧,那就是我周日没有意识到的可以是0或7.谢谢 (4认同)
  • 您能确认这是不区分大小写的吗?您在回复中在“SUN”、“Sun”、“Sunday”之间切换了几次 (3认同)
  • @MichaelChirico 哦,好点。检查[维基百科关于 Cron 的文章](https://en.wikipedia.org/wiki/Cron) 我读到_月份和工作日缩写不区分大小写_。 (2认同)

Hen*_*rik 101

    :-) Sunday    |    0  ->  Sun
                  |  
        Monday    |    1  ->  Mon
       Tuesday    |    2  ->  Tue
     Wednesday    |    3  ->  Wed
      Thursday    |    4  ->  Thu
        Friday    |    5  ->  Fri
      Saturday    |    6  ->  Sat
                  |  
    :-) Sunday    |    7  ->  Sun
Run Code Online (Sandbox Code Playgroud)

正如你在上面所看到的,如前所述,数字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
Run Code Online (Sandbox Code Playgroud)

这四个例子完全相同,每周五,周六和周日9点15分执行命令.

详细地

有两个数字07星期日可用于编写从开始0或结束的工作日范围7.因此,您可以编写以星期日开始或以它结尾的范围,例如0-2或者5-7(例如,范围必须以较低的数字开头,并且必须以较高的数字结尾).缩写不能用于定义工作日范围.

  • 为清楚起见,“缩写不能用于定义工作日范围。” 这里的声明似乎是一种说法,不能用连字符-减号字符分隔缩写,只能用逗号分隔。换句话说,“Fri,Sat,Sun”不能缩写为“Fri-Sun”。 (3认同)

Cyr*_*ors 7

你也可以使用Mon星期一,Tue星期二等日期名称.它更加人性化.

  • @Nikita检查拼写错误或额外空格.我在Ubuntu 14.04.3的crontab中有一个"Mon-Fri"和一个"Thu",两者都运行得很好.我怀疑如果任何一个角色之间有空格,你最终会出错. (3认同)