Cron 表达式解析
粘贴 5 字段 cron 表达式即可读出中文含义,并预览未来 5 次执行时间。
每月的每日(每周几)每小时的每 15 分钟触发。
字段
分钟
*/15
小时
*
日
*
月
*
周
*
未来执行
#15/4/2026, 3:15:00 PM
#25/4/2026, 3:30:00 PM
#35/4/2026, 3:45:00 PM
#45/4/2026, 4:00:00 PM
#55/4/2026, 4:15:00 PM
如何读 cron
Cron 表达式是一组 5 字段的调度规则,用来告诉 Unix 调度器何时跑任务。字段依次为:分钟、小时、日、月、周,以空格分隔。每个字段都接受单值、逗号列表、范围(1-5)、步长(*/15),或通配符 *。大多数 Linux 上的经典 Vixie cron 就是这套语法;许多新调度器(systemd timer、GitHub Actions、Kubernetes CronJob)也遵循相同方言。
本解析器会把表达式拆成 5 个字段、逐项校验,再合成一段中文解释;同时按你本地时区预览未来 5 次执行时间,方便你确认 "每 15 分钟" 真的是每小时 4 次而不是每天 24 次。Quartz 风格的可选 "秒" 字段不被支持 —— 6 字段表达式会被拒。
使用场景
- 把 runbook 里复制来的 cron 在写入 crontab 前再核对一次。
- 确认 "每 15 分钟" 的表达式真的是每天 96 次,而不是 24 次。
- 把复杂表达式(如 0 9-17/2 * * 1-5)翻成中文写进文档。
- 预览备份任务下次执行时间。
- 对比两个表达式哪个触发更频繁。
最佳实践
- 每个 cron 任务都用一行中文注释说明它干什么。
- 在多任务间随机错开分钟偏移,避免每小时整点出现 thundering herd。
- 服务器跨时区时统一用 UTC 设 cron。
- 日字段与周字段是 OR 关系 —— 同时设置时只要任一匹配就会触发。
参考速查
| 表达式 | 含义 |
|---|---|
| * * * * * | 每分钟 |
| */5 * * * * | 每 5 分钟 |
| 0 * * * * | 每小时整点 |
| 0 0 * * * | 每天 0 点 |
| 0 9 * * 1-5 | 工作日 9 点 |
| 0 0 1 * * | 每月 1 号 0 点 |
| 30 2 * * 0 | 每周日 02:30 |
| 0 0 1 1 * | 每年 1 月 1 日 0 点 |
常见问题
支持秒字段吗?
不支持。本解析器使用标准 5 字段 Vixie cron 语法。Quartz 风格的 6 / 7 字段表达式不会被接受。
预览的执行时间是哪个时区?
你的本地浏览器时区。部分调度器(如 Kubernetes)默认按 UTC 解读 cron,容易混淆。
为什么周字段 0 和 7 都是周日?
这是 Vixie cron 的历史兼容 —— 0 与 7 都映射到周日,让两种约定的脚本都能用。
步长可以超过字段范围吗?
不可以。分钟字段写 */60 不合法,因为它会超过 59,解析器会报错。