為什麼 cron 的 */45 不代表每 45 分鐘一次
09:00、09:45、10:00。整點邊界說明了意外的額外執行。
*/45 * * * * 會在每小時的第 0 分鐘和第 45 分鐘執行。間隔時間交替為 45 分鐘和 15 分鐘。它不會在前一次執行後等待 45 分鐘。
Cron 是根據時鐘的欄位來匹配的。分鐘欄位的步進會在小時變更時重新開始。這個差異在排程報告、資料更新或清理工作時很重要。
檢查小時邊界
打開 cron 建構器,選擇 貼上運算式,輸入 */45 * * * *。將 排程時區 設為 UTC。在 預覽後 選擇 2026 年 11 月 6 日 08:59。手機上切換到 即將執行的排程 以查看清單。
前五個匹配時間為:
| UTC 執行時間 | 與前一次執行的間隔 |
|---|---|
| 09:00 | — |
| 09:45 | 45 分鐘 |
| 10:00 | 15 分鐘 |
| 10:45 | 45 分鐘 |
| 11:00 | 15 分鐘 |
點選 顯示另外 5 個 可延伸預覽。此處日期固定,方便你重現我們的 執行紀錄;你也可以用任何普通的 UTC 日期來觀察相同的小時邊界行為。預覽只列出選定時間之後的匹配。
步進只在該欄位內運作
分鐘欄位範圍是 0 到 59。步進 45 會選擇 0 和 45,然後下一小時又從 0 開始。相比之下,*/15 * * * * 選擇 0、15、30 和 45,產生等距 15 分鐘的間隔(UTC 時間)。
crontab 手冊 描述了這種欄位分別運作的行為。建構器支援五個欄位:分鐘、小時、日期、月份和星期。帶秒數的六欄運算式屬於不同語法,這裡會被拒絕。
預覽上方有友善的描述,但使用步進運算式前,請務必檢查實際時間戳。尤其要看跨小時邊界的兩次執行時間。
如果你需要 45 分鐘的時鐘排程
若要在 UTC 固定時間 00:00、00:45、01:30、02:15、03:00 等執行,四個運算式可涵蓋三小時的重複模式:
0 0-23/3 * * *
45 0-23/3 * * *
30 1-23/3 * * *
15 2-23/3 * * *
分別預覽每個運算式。工具一次只處理一個運算式,且不會安裝工作。在你的排程器中,設定這四個條目都執行同一個任務,且時區都用 UTC。這些只是排程運算式:Unix crontab 還需要在每行後面加命令,託管服務可能用不同的觸發設定。
下載 四個運算式。我們的綜合預覽會顯示 09:00、09:45、10:30、11:15 和 12:00,匹配間隔為 45 分鐘。這是時鐘排程,不是從工作完成後開始計算的延遲。
配合工作需求調整排程
如果需求是「工作完成後等待 45 分鐘」,請使用支援該間隔行為的排程器或佇列。cron 步進和四條運算式的時鐘排程都不會等待前一次執行結束。若工作耗時可能超過排程間隔,請決定如何避免重疊執行。
此預覽的時區設定不會隨複製的運算式帶出。請在目標排程器中重新設定。此例用 UTC 避免夏令時間調整,若用本地時間排程,需額外檢查夏令時間變更。
結果紀錄 是用工具的實際解析器在 2026 年 11 月 6 日產生。它檢查了交替間隔和四條運算式共 65 次匹配。這是計算驗證,不代表背景工作已安裝或執行。