Unix Cron 表示式生成器
視覺化生成Cron表示式,輕鬆配置定時任務。支援分鐘、小時、日期、月份、星期等時間單位設定,自動生成標準Cron表示式。
Cron表示式構建器
生成結果
輸入現有的 Cron 表示式,自動設定對應的表單選項
視覺化生成Cron表示式,輕鬆配置定時任務。支援分鐘、小時、日期、月份、星期等時間單位設定,自動生成標準Cron表示式。
輸入現有的 Cron 表示式,自動設定對應的表單選項
一個標準的 cron 表示式由 5 個時間欄位和 1 個命令欄位組成,其定義遵循 Unix 和 Linux 系統的通用規範。根據 IEEE Std 1003.1-2017(POSIX 標準)[1] 和 Linux man 5 crontab 文件[2],其格式如下:
* * * * * command-to-execute
│ │ │ │ │
│ │ │ │ └── 星期幾 (0-7, 0和7均代表星期日)
│ │ │ └──── 月份 (1-12)
│ │ └────── 日期 (1-31)
│ └──────── 小時 (0-23)
└────────── 分鐘 (0-59)
權威說明:
每個時間欄位支援以下特殊符號:
| 符號 | 說明 | 示例 |
|---|---|---|
* |
匹配任意值 | * 在分鐘欄位 = 每分鐘 |
, |
指定多個值 | 1,3,5 = 第1、3、5分鐘 |
- |
定義範圍 | 10-15 = 10到15分鐘 |
/ |
步長(間隔週期) | */5 在分鐘欄位 = 每5分鐘 |
? |
僅用於日期和星期欄位,表示"不指定" | 常用於避免衝突 |
現代 cron 實現(如 Vixie cron 及其衍生版本)支援更豐富的語法規則。根據 IBM Cron 參考文件[4] 和 Cronie 專案 Wiki[3],以下符號被廣泛支援:
| 符號 | 說明 | 官方文件示例 |
|---|---|---|
L |
月份最後一天(僅某些實現支援) | 0 0 L * * = 每月最後一天執行[5] |
W |
最近工作日(如 15W 表示最接近15日的工作日) |
參考 Quartz Scheduler 文件[6](常用於 Java 生態,部分 cron 相容) |
@daily、@weekly 等別名源自 Paul Vixie 開發的 cron 實現(1987 年釋出的 Vixie cron)[7],併成為現代 Linux 發行版(如 Debian、Red Hat)的預設支援功能。根據 Debian cron 手冊[8]:
# 等價於 0 0 * * *
@daily /path/to/script
不同 cron 實現可能存在細微差異,需參考對應文件:
| 實現名稱 | 特點 | 官方資源連結 |
|---|---|---|
| Cronie | Red Hat 系預設 cron,支援 @ 快捷方式 |
Cronie GitHub |
| systemd | 通過 .timer 單元替代 cron(推薦新系統使用) |
systemd.timer 手冊 |
| fcron | 支援更復雜語法(如 @yearly) |
fcron 官網 |
Crontab 手冊頁
終端輸入 man 5 crontab 檢視完整語法,這是最直接的本地權威參考。
Cron 表示式生成器
開源專案文件
通過結合 POSIX 標準、Linux 手冊頁和主流實現(如 Cronie)的文件,使用者可以精準掌握 cron 表示式的核心邏輯。對於高階用法(如 L 和 W),需注意不同實現的相容性,並優先參考官方資源。
Cron 表示式是一個由空格分隔的 5 個或 7 個欄位組成的字串,在類 Unix 作業系統中用來表示時間排程。它允許您將任務(如備份、定時指令碼或通知)安排在特定時間或按一定時間間隔自動執行。
標準模式使用 5 個欄位(分鐘、小時、日、月、星期),是 Linux/Unix crontab 的標準格式。擴充套件模式使用 7 個欄位,增加了開頭的“秒”和結尾的“年”。擴充套件模式常用於現代應用框架(如 Java 的 Quartz 或 Spring 任務排程)。
“?”符號代表“不指定值”。它只能用在“日”和“星期”欄位。當您需要指定其中一個欄位的具體值,但不在乎另一個欄位時,這個符號非常有用。例如,如果您希望任務在每月的 10 號執行,而不管那天是星期幾,您需要在“日”欄位填 10,在“星期”欄位填“?”以避免衝突。
可以!您可以使用“反向解析”功能。只需將您已有的 Cron 表示式貼上到輸入框中,然後點選“解析表示式”,視覺化的配置面板會自動更新以反映該表示式的各項設定。