Cron表示式構建器
只需通過下拉選單和數值輸入選擇分鐘、小時、日期、月份和星期,即可自動生成cron表示式。可即時預覽生成的cron字串、通俗語言的說明文字,以及接下來5次執行時間,方便編寫crontab或GitHub Actions的定時任務。
常用排程速查表
以下是典型排程場景對應的cron表示式列表。點選某一行即可將其作為預設應用到上方的構建器中。
| 預設名稱 | cron表示式 | 含義 |
|---|---|---|
| 每天凌晨0點 | 0 0 * * * | 每天0點0分(凌晨)執行。 |
| 工作日9點 | 0 9 * * 1-5 | 工作日(週一至週五)的9點執行。 |
| 每小時第0分鐘 | 0 * * * * | 每小時的第0分鐘執行一次。 |
| 每週一 | 0 0 * * 1 | 每週一0點0分執行。 |
使用小貼士
- 將星期欄位設定為"範圍"模式並選擇1到5,即可一步生成"週一至週五"的工作日排程。
- "列表"模式可以用逗號分隔輸入多個值,例如在分鐘欄位輸入"0,15,30,45",效果等同於每15分鐘執行一次。
- 如果日期欄位和星期欄位都被設定為"每次(*)"以外的值,按照標準cron規範,兩者是"或"的關係——只要滿足其中一個條件就會執行。
- 生成的cron表示式可以通過"複製"按鈕複製到剪貼簿,直接貼上到crontab或GitHub Actions的YAML檔案中使用。
- 點選預設按鈕,或點選下方速查表中的某一行,都可以一鍵將常見排程應用到構建器中。
常見問題
crontab條目是由5個用空格分隔的欄位組成的字串:分、時、日、月、星期。本工具讓你通過下拉選單或數值輸入分別選擇每個欄位,自動為你組裝這5個欄位,因此無需記憶語法就能生成正確的cron表示式。
將星期欄位設定為"指定值"模式並選擇1(星期一),即可生成"0 0 * * 1",只匹配週一。如果需要調整具體時刻,也請將分鐘、小時欄位設定為"指定值"模式。
將星期欄位設定為"範圍"模式,從1(星期一)到5(星期五)。但cron本身沒有節假日的概念,如果需要排除法定節假日,需要在指令碼中另外編寫判斷邏輯。
可以。它生成的是標準5欄位格式(相容Vixie cron)的cron表示式,因此可以直接用於Linux伺服器的crontab、GitHub Actions的schedule、Kubernetes的CronJob等採用相同5欄位cron語法的多種環境。
閒話 ― 為什麼"寫"cron表示式比"讀"更難
cron表示式看似只要記住5個欄位就能寫出來,但真正動手寫時,往往需要回憶"*/15"和"1-30/5"哪個才是正確寫法、星期是從0開始還是從1開始等細節,出錯的機率意外地高。相反,理解一段已有cron表示式的含義(本站的Cron表示式解析器所承擔的任務)相對機械,只需按順序逐個欄位理解即可。
本工具正是著眼於這種不對稱性,專注於支援"從UI選擇構建"cron表示式這一方向的操作。使用者可以通過下拉選單和數值輸入直接表達意圖(例如"想在工作日9點執行"),工具會自動組裝出滿足該意圖的cron表示式,從而徹底免除記憶語法的負擔。
作為確認生成結果是否符合預期的最後一步,本工具還提供了接下來5次執行時間的預覽功能。尤其是當日期欄位和星期欄位同時被限制時會構成容易被忽視的"或"條件,能夠直接看到實際的候選執行時間,有助於提前發現執行頻率與預期不符的問題。