跳到主要內容
Tools

Cron 表達式解析

用中文說明 cron 排程的意思,逐欄位解釋,並列出指定時區接下來 10 次的執行時間。

5 個欄位:分 時 日 月 星期;6 個欄位時最前面加上秒。

說明

載入說明中…

標準 5 欄位格式

欄位說明

欄位值意思
分00 分
時99 點
日*每天
月*每個月
星期1-5星期一到星期五

接下來 10 次執行時間

載入說明中…

使用說明

  1. 在「Cron 表達式」輸入排程,例如 0 9 * * 1-5,或從「常用排程」選一個。
  2. 上方會用一句話說明這個排程的意思,下方的表格逐一解釋每個欄位。
  3. 選擇時區後,「接下來 10 次執行時間」會列出這個排程在該時區的實際執行時間,並標示距離現在多久。
  4. 表達式有誤時,欄位下方會指出是哪個欄位、哪個值有問題,以及允許的範圍。

常見問題

我輸入的資料會被上傳嗎?

不會。解析與執行時間的計算都在你的瀏覽器中完成,表達式不會離開你的裝置。

cron 表達式的 5 個欄位分別是什麼?

依序是「分(0–59)、時(0–23)、日(1–31)、月(1–12 或 JAN–DEC)、星期(0–7 或 SUN–SAT,0 與 7 都是星期日)」。* 代表任意值,逗號分隔多個值(1,15),連字號表示範圍(1-5),斜線表示間隔(*/15 是每 15 分鐘)。

6 個欄位的格式是什麼?

6 個欄位時,最前面多一個「秒(0–59)」,例如 */30 * * * * * 是每 30 秒。Spring、Quartz、Node.js 的 node-cron 等排程器支援這種格式;Linux 的 crontab 只支援 5 個欄位。這個工具會依欄位數量自動判斷。

同時指定「日」和「星期」會怎樣?

依照標準 cron 的規則,兩者是「或」的關係:例如 0 0 1 * 1 會在每月 1 日以及每個星期一執行,而不是只在剛好是星期一的 1 日執行。工具偵測到這種情況時會特別提醒。只想限制其中一個時,把另一個設為 * 或 ?。

支援哪些特殊符號?

支援 L(日欄位:每月最後一天)、5L(星期欄位:每月最後一個星期五)、1#2(每月第 2 個星期一)、? (日或星期欄位的「不指定」),以及 @yearly、@monthly、@weekly、@daily、@hourly、@reboot 等簡寫。最接近的工作日(15W)、L-3 與 Jenkins 的 H 目前不支援,會顯示錯誤說明。

時區與日光節約時間怎麼處理?

執行時間以你選擇的時區計算,預設是你裝置的時區。伺服器上的 cron 通常使用伺服器的時區(很多是 UTC),請選擇與伺服器相同的時區來確認。遇到日光節約時間切換時,不存在的時間(例如紐約 3 月某天的 2:30)會順延到切換後的時間。

為什麼說明文字要等一下才出現?

產生說明與計算執行時間的程式比較大,所以在開啟頁面後才另外載入,讓頁面先顯示。載入一次後就會立即更新。

鍵盤快捷鍵

/
搜尋工具(在工具頁會回到首頁的搜尋欄)
?
顯示這個說明
Esc
關閉對話框
Ctrl / ⌘Enter
執行工具的主要動作(支援的工具)

在輸入框中打字時,/ 與 ? 不會觸發快捷鍵。