分鐘 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-7)
0 9 * * *2026-07-30 09:00
2026-07-31 09:00
2026-08-01 09:00
2026-08-02 09:00
2026-08-03 09:00
2026-08-04 09:00
工具說明
關於 Cron 運算式產生器
cron 產生器可以依照簡單的選項,組出標準的 5 欄位 crontab 運算式,讓你不必背欄位順序也能排定工作。
它涵蓋 Linux cron、Kubernetes CronJob 以及多數 CI 排程器所使用的經典格式:分、時、日、月、星期。這個格式沒有秒欄位,因此 Quartz 風格的 6 欄位或 7 欄位運算式不在支援範圍內。
如何使用 Cron Expression Generator
- 從預設項目開始,例如每 5 分鐘、每小時、每天午夜、平日 09:00,或每月 1 號。預設值會填入下方的欄位控制項,你可以繼續微調。
- 每個欄位都能用五種模式調整:Every 產生單純的星號,Every N 產生像 */15 的間隔,Range 產生像 9-17 的區間,List 產生像 1,15,30 的清單,Exact 則指定單一數字。
- 看著運算式即時更新,然後把它複製到你的 crontab、CI 設定或 CronJob 資源檔中。
- 檢查下方顯示的接下來 6 次執行時間。這個預覽是最快能揪出「值填錯欄位」的方式。
什麼時候會用到
- 排定每晚的資料庫備份,並確保它在上班時間開始前跑完。
- 以固定的每週或每月節奏輪替或封存記錄檔。
- 在每日流量高峰之前預熱快取或重建搜尋索引。
- 每週一早上寄出報表,或在每月第一天執行計費作業。
- 觸發每晚的 CI 建置,以及定期的憑證更新檢查。
最常出錯的 cron 語法規則
五個欄位依序是分、時、日、月、星期。多數排錯的排程,都出在幾個容易誤讀的語意上。
- 當「日」與「星期」兩個欄位都不是星號時,cron 會以 OR 而非 AND 來組合它們。所以 0 0 13 * FRI 代表每月 13 號或每個星期五,而不是只在十三號星期五。
- 像 */15 這樣的間隔從 0 開始、每 15 個單位重複一次,得到 0、15、30、45。寫成 5/15 則從 5 開始一路跑到最大值,得到 5、20、35、50。
- 在星期欄位中,0 和 7 都代表星期日,因此同一份排程可以有兩種寫法。
- 月與星期欄位接受三個字母的名稱,例如 JAN 到 DEC 以及 MON 到 SUN。
- cron 依照持有該排程那台機器的本地時區執行,因此部署前請先確認時區。日光節約時間的轉換可能讓某個整點時段被跳過或重複執行。
Cron 產生器常見問題
- 這個工具支援秒欄位嗎?
- 不支援。它只產生標準的 5 欄位 crontab 格式。Quartz 與部分 Java 排程器使用含秒數與選用年份的 6 或 7 欄位格式,這裡不會產生那種寫法。
- 為什麼我同時設了日與星期,排程觸發得比預期頻繁?
- 因為當這兩個欄位都不是星號時,cron 會以 OR 處理它們。若要嚴格的 AND 條件,請排定較寬鬆的 cron,再在工作內部加上日期判斷。
- 每分鐘跑一次工作安全嗎?
- 只有在單次執行能遠在一分鐘內完成時才安全。否則執行會互相重疊、越積越多,因此請加上鎖定檔或單一實例的防護,或改用較長的間隔。
- 接下來的執行時間使用哪個時區?
- 預覽採用你瀏覽器的時區。實際執行排程的機器則用它自己的時區,因此在依賴精確時刻之前,請先確認兩者一致。
- 我的排程會被上傳到哪裡嗎?
- 不會。wetool.site 上的每個運算式都完全在你的瀏覽器裡產生與預覽,你輸入的內容不會送往任何伺服器。
cron 產生器與 cron 解析器
本站的 cron 解析器解決的是相反的問題:你已經有一段運算式,想知道它是什麼意思、下次何時觸發。這個產生器則走另一個方向,把你能用文字描述的排程轉成正確語法。兩者互補,所以產生運算式之後,你可以把它貼進解析器,當作獨立的第二道確認。
部署排程前的檢查事項
看起來正確的運算式,在真正的伺服器上仍可能在錯誤的時刻觸發。花一點時間複查就能攔下大部分問題。
- 把接下來 6 次執行時間跟你的原意對照,尤其是第一次,它能立刻暴露欄位差一格的錯誤。
- 確認實際執行的機器或容器所用的時區,跨地區的系統建議統一採用 UTC。
- 把負擔重的工作分散到不同分鐘,不要全部堆在第 0 分鐘。
- 想清楚主機停機而錯過某次執行時該怎麼辦,因為標準 cron 不會補跑被跳過的排程。