Cron 表達式看起來像隨機數字和星號,但它們控制著網際網路上數百萬個排程任務的執行時機。無論你是在設定備份腳本、排程電子郵件報告,還是配置 CI/CD 管線,理解 cron 都是必要的。本教學使用我們免費的 Cron 解析器 讓一切變得簡單。
你需要什麼
- 要解碼的 cron 表達式,或你想以 cron 表示的排程
- 網頁瀏覽器(Chrome、Firefox、Safari 或 Edge)
- 不需要帳號或安裝軟體
逐步指南
輸入 cron 表達式
開啟 Cron 解析器 工具。在輸入欄位中輸入或貼上 cron 表達式。例如,試試 0 9 * * 1。工具立即解析它並以人類可讀的文字向你展示它的含義。
讀取人性化的結果
解析器將表達式翻譯為清晰的描述。對於 0 9 * * 1,你將看到類似「每週一 09:00」的內容。工具還顯示接下來幾次排定的執行時間,讓你驗證排程是否符合你的預期。
調整和實驗
修改表達式並觀察描述即時更新。更改數字、將星號換成值,或添加範圍。這種即時反饋循環是學習 cron 語法並建立你所需確切排程的最快方式。
注意事項 Cron 表達式通常有五個欄位:分鐘、小時、日期、月份和星期幾。一些系統添加了第六個欄位用於秒,但五個欄位是標準格式。
了解五個欄位
Cron 表達式由五個以空格分隔的欄位組成:
┌───────────── 分鐘 (0-59)
│ ┌───────────── 小時 (0-23)
│ │ ┌───────────── 日期 (1-31)
│ │ │ ┌───────────── 月份 (1-12)
│ │ │ │ ┌───────────── 星期幾 (0-7,其中 0 和 7 都是星期日)
│ │ │ │ │
* * * * *
星號 * 表示「每個」。數字表示「恰好在這個值」。這是基礎——所有其他內容都建立在此之上。
常見 Cron 模式
以下是你最常使用的模式。在 Cron 解析器 中輸入任何一個,查看解釋和驗證:
| 表達式 | 含義 |
|---|---|
* * * * * |
每分鐘 |
0 * * * * |
每小時(在第 0 分鐘) |
0 9 * * * |
每天上午 9:00 |
0 9 * * 1 |
每週一上午 9:00 |
0 9 * * 1-5 |
工作日上午 9:00 |
0 0 1 * * |
每月第一天午夜 |
0 */6 * * * |
每 6 小時 |
30 8 * * 1,3,5 |
週一、三、五上午 8:30 |
0 0 * * 0 |
每週日午夜 |
*/15 * * * * |
每 15 分鐘 |
提示 步進語法 */n 表示「每 n 個間隔」。所以分鐘欄位中的 */15 表示每 15 分鐘(在每小時的第 0、15、30 和 45 分鐘)。範圍語法 1-5 在星期幾欄位中表示週一到週五。
特殊字元說明
| 字元 | 含義 | 範例 |
|---|---|---|
* |
每個值 | * * * * * = 每分鐘 |
, |
多個值 | 0 9,17 * * * = 上午 9 時和下午 5 時 |
- |
值的範圍 | 0 9 * * 1-5 = 工作日 |
/ |
步進間隔 | */10 * * * * = 每 10 分鐘 |
自己建立表達式
要從頭建立 cron 表達式,將你的排程視為五個問題的答案:
- 在哪個分鐘?(0-59,或
*表示每分鐘) - 在哪個小時?(0-23,或
*表示每小時) - 在哪天?(1-31,或
*表示每天) - 在哪個月份?(1-12,或
*表示每個月) - 在星期幾?(0-7,或
*表示每天)
例如,「每週二和週四下午 2:30」變成:分鐘=30,小時=14,日期=,月份=,星期幾=2,4,得到 30 14 * * 2,4。
重要 Cron 使用 24 小時制。上午 9 時是 9,但下午 9 時是 21。另外請注意,時區取決於執行 cron 任務的伺服器,而不是你的本地時間。始終確認你的系統使用哪個時區。
常見問題
如果我同時設定日期和星期幾會怎樣? 在標準 cron 中,當任一條件滿足時,任務就會執行(是 OR,而不是 AND)。這讓很多人感到困惑。如果你需要同時滿足兩個條件,使用一個檢查日期的包裝腳本。
我可以安排每 2 小時執行一次嗎?
可以。使用 0 */2 * * *,在每隔一個小時的第 0 分鐘執行。
5 欄位和 6 欄位 cron 有什麼區別? 一些系統(如 Spring、Quartz)在開頭添加了秒欄位。標準 Unix cron 使用五個欄位。Cron 解析器 支援兩種格式。
後續步驟
現在你可以讀寫 cron 表達式了,試著為你的專案建立排程。如果你使用其他開發者工具,查看我們的 Regex 測試器 用於模式匹配,或 JSON 格式化器 用於處理配置文件。