Cron Expression Builder
Understand Cron Expression Builder
解析五字段的 cron 表达式,用通俗语言说明它的含义,并显示接下来的五次触发时间。
How it works
五个字段分别是分钟(0–59)、小时(0–23)、日(1–31)、月(1–12)和星期(0–6,0 表示星期日),每个字段都接受 `*`、列表(`1,15`)、范围(`1-5`)或步长(`*/15`)。cron 的判定方式是每分钟对这五个字段逐一比对,但两个「日」字段是例外:当日和星期都被限定时,它们是以「或」而不是「与」组合的,因此 `0 0 13 * 5` 会在每月 13 号以及每个星期五运行,而不只是在 13 号恰逢星期五时运行。这里显示的下次运行时间按你浏览器所在的本地时区计算。
When to use it
- 在把计划写进 crontab 或 Kubernetes CronJob 之前,确认它确实是你的本意
- 读懂遗留 crontab 中别人写的表达式,弄清它实际何时触发
- 为一组任务挑选错峰安排,避免它们都在整点启动
- 排查「运行时间不对」的任务时,直接看接下来五个具体时间点,而不是靠推理各个字段
Watch out for
- 日与星期的「或」关系是 cron 中被误读得最多的一条规则。如果你想要「每周一,但仅当那天是 1 号」,cron 无法表达——请把日期判断放进脚本里。
- 步长在每个字段边界处重新开始,而不是按你设想的间隔连续推进。分钟字段里的 `*/7` 会在 :00、:07 …… :56 触发,然后回到 :00,因此每小时会留下一个四分钟的缺口,而不是均匀的 7 分钟节奏。
- `0 0 31 * *` 会静默跳过二月、四月、六月、九月和十一月。要表达「每月最后一天」,请使用支持 `L` 的调度器,或者每天运行并在脚本开头提前退出。
- cron 按宿主机时区运行,因此夏令时会挪动你的任务。凌晨 2:30 的任务在春季调时那天可能根本不会运行,在秋季调时那天可能运行两次;按 UTC 排程可以避开这两种情况。
Not the right tool for: Quartz 和 AWS EventBridge 方言。它们增加了秒字段或年份字段,以及 `?`、`L`、`W`、`#` 这些字符——本解析器读的是标准五字段形式,请先转换再粘贴。
Frequently Asked Questions
cron 任务是什么?
cron 任务是在 Linux/Unix 系统上按指定时间或间隔自动运行的计划任务。cron 是读取 crontab 文件并执行其中条目的守护进程。常见用途:数据库备份、日志轮转、生成报表和定时发信。
cron 表达式是什么?
cron 表达式由五个以空格分隔的字段定义计划:分钟(0–59)、小时(0–23)、日(1–31)、月(1–12)、星期(0–6,0 表示星期日)。每个字段都接受星号、范围、列表和步长。Quartz 与 AWS 的扩展——秒字段、?、L、W、# 以及 @daily 之类的宏——在这里不会被解析。
如何创建 cron 任务?
在 Linux 上运行 crontab -e 打开 crontab 编辑器,添加一行:"*/15 * * * * /path/to/script.sh"。保存退出后,cron 守护进程会立即生效。用 crontab -l 确认。对于 AWS EventBridge 或 GitHub Actions,请使用它们各自的 cron 语法变体。
How to Use Cron Expression Builder
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.