Cron表達式解析器
輸入Cron表達式以查看其易讀描述、欄位分解和接下來的10次執行時間。所有處理均在您的瀏覽器中完成。
人類可讀描述
欄位分類
| 欄位 | 值 | 含義 |
|---|
下 10 次執行時間
關於 Cron 運算式
Cron 運算式定義 Unix 類系統上重複任務的排程。標準運算式有 5 個欄位:
| 欄位 | 範圍 | 特殊字元 |
|---|---|---|
| 分鐘 | 0-59 | * , - / |
| 小時 | 0-23 | * , - / |
| 月份中的日 | 1-31 | * , - / ? |
| 月份 | 1-12, JAN-DEC | * , - / |
| 星期幾 | 0-7(0 和 7 = 週日), SUN-SAT | * , - / ? |
下次執行是按你選的時區算的,不是按你所在的時區,因為 crontab 是在伺服器所在的地方觸發,而那通常是 UTC。凡是能寫數字的地方都能寫三字母名稱,所以 MON-FRI 和 JAN 照寫就能用。超出欄位範圍的值、為零的步長、以及倒著走的區間都會被拒絕,而不是悄悄產出一個永遠不會觸發的排程。當兩個日期欄位都被限定時,頁面會提示,因為 cron 把這一對當作「或」而不是「且」,很多人會在這裡栽跟頭。
常見問題
為什麼我的工作跑得比預期還勤?
通常是因為兩個日期欄位都填了。當日期和星期都不是星號時,cron 是在其中任一個匹配時執行,而不是兩個都匹配時。所以 0 0 1 * 1 會在每月一號觸發,也會在每個週一觸發。你的表達式一旦是這個形狀,本頁面就會提醒你。
下次執行用的是哪個時區?
你選的那個,預設是 UTC 而不是你所在的時區,因為 crontab 是在伺服器所在的地方觸發的。如果你的主機跑在某個地區時區,就選它;另外記得日光節約時間可能讓每日工作跳過或重複一個小時。
能寫 MON-FRI 代替 1-5 嗎?
能。凡是能寫數字的地方都能寫三字母名稱,月份和星期都適用,所以 JAN、DEC、MON、SUN 都能解析。週日寫 0 或 7 都行,兩者都接受,這也是為什麼 6-7 這樣的區間能涵蓋整個週末。
星號加斜線是什麼意思?
表示步長。分鐘欄位裡的 */15 表示從 0 開始每隔十五分鐘,也就是 0、15、30、45。從別的地方起步也行:5/15 表示從第 5 分鐘起,每十五分鐘一次。步長為 0 是無效的,本頁面會告訴你,而不是卡死。
支援多出來的秒欄位嗎?
能解析,Quartz 和好幾個工作排程器用的就是這種形式,所以六欄位的表達式也能被正確描述。下次執行的清單按分鐘粒度運作,因為原生 cron 就到這個粒度,而秒欄位只是在每個匹配到的分鐘內部再收窄一層。