Cron 表达式解析器
格式:minute hour day-of-month month day-of-week
你接手了一个 crontab,里面满是 0 */2 * * 1-5、15 4 1 * *、*/30 8-18 * * * 这样的任务。该解析器接受标准的 5 字段 cron 表达式,返回通俗易懂的英文说明(例如 “every 2 hours on weekdays”),并列出它接下来实际触发的 5 个时间点。非常适合用来理解遗留的调度任务,并在部署新任务前先做验证。
如何解析 cron 表达式
-
1
粘贴表达式
一个标准的 5 字段表达式(`* * * * *`):分钟、小时、日(月内)、月份和星期。
-
2
阅读英文说明
解析器会用简单的英文改写每个字段,例如 "At minute 0, every 2 hours, on day(s) of week 1-5."
-
3
用下次运行预览进行验证
接下来的 5 个触发时间。如果与你的意图不符,请调整表达式。
-
4
修正无效字段
字段数量不对或取值超出范围的表达式会被拒绝,并给出指明问题字段的错误提示。
解读每个字段
每个字段都有各自的有效范围和特殊字符:
| 字段 | 范围 | 支持的通配符 |
|---|---|---|
| 分钟 | 0-59 | * , - / |
| 小时 | 0-23 | * , - / |
| 日(月内) | 1-31 | * , - / |
| 月份 | 1-12 | * , - / |
| 星期 | 0-7 | * , - / |
*= 任意值(分钟字段中的*表示每分钟)。1,5,10= 值的列表。1-5= 值的范围。*/15或0-45/15= 步进,从字段范围的开头起算。- 星期
0和7都表示周日,两种习惯写法均可。不接受 JAN、MON 这类月份和星期的名称,请使用数字。
示例解读
| 表达式 | 英文说明 |
|---|---|
0 */2 * * 1-5 |
At minute 0 every 2 hours, Monday through Friday |
15 4 1 * * |
At 04:15 on the 1st day of every month |
*/30 8-18 * * * |
Every 30 minutes between 08:00 and 18:59 |
0 0 1,15 * * |
At midnight on the 1st and 15th of every month |
0 22 * * 0 |
At 22:00 every Sunday |
解析器接受什么
- 恰好 5 个字段:分钟、小时、日(月内)、月份和星期。带秒(6 字段)或带年(7 字段)的 Quartz 表达式会被拒绝。
- 有效范围:每个取值必须落在自己的字段范围内,例如分钟 0-59、小时 0-23、日(月内)1-31、月份 1-12、星期 0-7。
- 正数步进:
/后面的值必须是正数(*/0会被拒绝)。 - 不接受命名快捷方式:
@daily、@reboot等快捷方式不被接受。请先将其展开为 5 字段形式(例如@daily=0 0 * * *)。
“日(月内)”与“星期”同时使用
当“日(月内)”和“星期”同时设置时,此解析器只会在两者都匹配时才安排运行,因此 0 0 1 * MON 只在 1 日恰好是周一那天触发。而大多数 Linux cron 实现会把这两个字段按“或”处理(任一匹配即运行)。请务必对照你实际使用的调度器核对该表达式。
关于时区的说明
预览中的时间按服务器时钟计算,服务器运行在 UTC。如果你的 crontab 运行在其他时区的机器上,这里显示的时间可能与那台机器上的时间不同。
常见问题
不支持。只接受标准的 5 字段表达式。带秒(6 字段)或带年(7 字段)的 Quartz 表达式会被拒绝并报错。
通常是以下原因之一:预览按服务器时钟(UTC)计算,而你的 crontab 运行在其他时区;同时设置了“日(月内)”和“星期”(此解析器要求两者都匹配);或步进值在每个小时或每天开始时重新起算。
可以,只要它是标准的 5 字段表达式,这正是 Kubernetes 使用的格式(默认按 UTC)。请注意这里的预览按服务器时钟(UTC)计算,如果集群运行在其他时区,时间可能会有差异。
Linux cron 支持以下命名快捷方式:@reboot(系统启动时)、@yearly / @annually(0 0 1 1 *)、@monthly、@weekly、@daily 和 @hourly。此解析器不接受它们,请先把快捷方式展开为等价的 5 字段表达式再粘贴。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
电话号码验证器
根据各国号码规划检查结构,并显示地区、类型以及E.164、国际、国内和RFC 3966格式。
变更日志生成器
根据分类条目生成 Keep a Changelog 风格的 Markdown 部分。将条目粘贴到 Added、Changed、Fixed 和 Removed 下,选择 Markdown 或纯文本,然后复制输出。
cURL 命令生成器
根据 HTTP URL、请求头、认证、JSON、原始数据或表单字段,在浏览器中私密生成适用于 POSIX Shell 或 PowerShell 的 cURL 命令。
此工具还提供其他语言版本
- Cron İfadesi Ayrıştırıcı [TR]
- Analizador de Expresiones Cron [ES]
- محلل تعبيرات Cron [AR]
- Analyseur d'expressions Cron [FR]
- Cron-expressieparser [NL]
- Cron 표현식 파서 [KO]
- Pengurai Ekspresi Cron [ID]
- Cron Expression Parser [EN]
- Bộ phân tích biểu thức Cron [VI]
- cron式パーサー [JA]
- เครื่องมือแปลความหมายนิพจน์ Cron [TH]
- Analisador de Expressões Cron [PT]
- Cron-Ausdrucksparser [DE]
- Parser för cron-uttryck [SV]
- Parser wyrażeń cron [PL]
- Parser di Espressioni Cron [IT]
- Парсер cron-выражений [RU]