Cron 表达式生成器
用可视化方式建立 Unix、Quartz、AWS EventBridge 和 GitHub Actions 的 cron 表达式,并即时预览未来执行时间。
0 9 * * * 预览时间使用你当前浏览器的时区。
未来执行时间
未来执行时间
该计划永远不会触发 — 请检查日期和月份组合(如 2 月 30 日)。
你刚测试了Cron 表达式生成器 — 试试 结构化数据转换器 →
什么是 Cron 调度表达式构建器?
Cron 始于 1979 年 Unix Version 7 中的后台进程。现代的 Vixie cron(用于 Linux 发行版、BSD、macOS)标准化了五字段语法:分钟、小时、月中日、月份、星期几。Quartz Scheduler(Java 生态)在前面加了秒字段(共六个),后面加了年份字段(最多七个),将星期几改为 1-7 而非 0-6,并添加了 Unix cron 没有的 L(最后)、W(工作日)、#(第 N 个工作日)修饰符。AWS EventBridge 使用六字段调度(类似 Quartz,但月中日和星期几必须互斥地为 ?),GitHub Actions 使用 POSIX 五字段。构建器让你选择目标方言并在它们之间转换。常见语法:*(任意值)、5(字面量)、1-5(范围)、1,3,5(列表)、*/15(从基数步进)、0,15,30,45(显式列表等价物)。经典坑是 0 */6 * * * ——读者以为每 6 小时开始但实际指分钟 0 的小时能被 6 整除,即 00:00、06:00、12:00、18:00。在 03:00 重启服务,下次运行是 06:00,不是 09:00。
如何使用 Cron 调度表达式构建器
选择目标方言(Unix crontab、Quartz、AWS EventBridge、GitHub Actions)。构建器显示五个(或六个/七个)字段,带有 Every 或 Specific 切换。切换「每分钟/小时/日」使用 * 语义或选择字面量值。使用步进输入输入 */N(例如每 15 分钟 = */15 * * * *)。月中日与星期几在某些方言中互斥——在 Unix cron 中选择两者是 OR,但在 Quartz/EventBridge 中无效(一个必须是 ?)。实时预览显示浏览器时区计算的后续 5 次计划运行。复制表达式粘贴到 crontab、.github/workflows/*.yml、EventBridge 规则或 Quartz JobDetail。表达式也可链接——URL 哈希捕获完整配置。
为什么正确的 Cron 调度很重要
0 */6 * * * 不表示每 6 小时。小时字段中的 */6 表示每小时数能被 6 整除的小时——那是 00、06、12、18,正好每个日历日 4 次运行。在 03:00 重启不会改变计划;下次运行是 06:00。要真正每 6 小时从现在开始运行,使用有状态调度器(Quartz cron 触发器、带 OnUnitActiveSec=6h 的 systemd 计时器,或你的 CI 自有间隔语法)——cron 本身纯粹基于日历且无状态。另一个经典坑是 2 月 30 日——30 14 30 * * 仅在有第 30 天的月份运行,无声地跳过 2 月(一年 11 次而非 12 次)。在发布前预计算后 5-10 次运行的工具可以捕获两个坑。AWS 建议 EventBridge 的 rate(6 hours) 等费率表达式用于有状态间隔调度,而非 cron。
常见问题
支持哪些格式?
此 builder 可输出 Unix 5-field cron,也可生成同一排程的 Quartz、AWS EventBridge 及 GitHub Actions 版本。
预览时间是本地计算的吗?
是。TeaFun 会根据你选择的设置,直接在浏览器中计算未来执行时间。
可以直接用在 GitHub Actions 吗?
可以。把格式切换为 GitHub Actions,然后复制生成的表达式到 workflow schedule 即可。
把这个工具放进更大的流程里
这些集合会把常见的后续工具和指南整理成同一条工作路径。
浏览相同标签
跳转到其他拥有相同工作流、格式或用途的工具。