Try   HackMD

深入淺出 Crontab 格式

tags: crontab, cronjob

Case study

  • Case one

https://crontab.guru/#0_0_/2__*
0 0 */2 * *

Q: 廣義來解釋是每兩天執行一次,但實際是偶數天執行還是奇數天執行呢?
A: 奇數

  • Case two

https://crontab.guru/#0_/2_**
0 */2 * * *

Q: 廣義來解釋是每兩個小時執行一次,但實際是偶數時執行還是奇數時執行呢?
A: 偶數

  • Why different
  1. 第一次執行的判斷基於給定單位的起始範圍
  2. * 號在解析時會自動被代換為該單位的最大範圍
    • Minute: (0~59)
    • Hour: (0~23)
    • Day: (1~31)
    • Month: (1~12)
    • Day(Week): (0~6)

讓我們試著代換剛剛的 Case

  • Case one: 0 0 1-31/2 * *

起始數字為 1 -> 奇數 -> 1, 3, 5, 7, ... 時執行

  • Case two 0 0-23/2 * * *

起始數字為 0 -> 偶數 -> 0, 2, 4, 6, ... 時執行

Q: 如果我們想在 Case one 指定偶數天執行呢?
A: 0 0 2/2 * * == 0 0 2-31/2 * *

起始數字為 2 -> 偶數 -> 1, 3, 5, 7, ... 時執行

媽媽我再也不怕要交給上級的報告沒生出來啦!