Cron 生成

本地处理
* * * * *
接下来 5 次执行
  1. 9/12/2026, 12:39:00 AM
  2. 9/12/2026, 12:40:00 AM
  3. 9/12/2026, 12:41:00 AM
  4. 9/12/2026, 12:42:00 AM
  5. 9/12/2026, 12:43:00 AM

使用指南

工具介绍

给服务器定时任务写 crontab,分、时、日、月、周五个字段的范围、步长与特殊符号全凭记忆,写错了往往要到任务没跑才发现。这个生成器把它们拆成五个独立字段,填好立刻拼出标准表达式,下方同步给出接下来 5 次执行时间,语义是否如你所想一眼可验。

表达式遵循标准 Linux crontab 语法:五个字段都支持逗号列表、范围与 */n 步长,比如分钟填 */15 就是每 15 分钟一次。六个预设按钮一键落出常用节奏,再精修个别字段,比从零手写快得多。

使用步骤

  1. 先从预设按钮里挑一个接近的模板:每分钟、每小时、每天 0:00、每周一 9:00、每月 1 号、每 15 分钟。
  2. 在五个字段里精修数值,取值范围标在字段标签上(分钟 0–59、小时 0–23、日 1–31、月 1–12、周 0–6),支持逗号、范围与 */n 步长;留空的字段按 * 处理。
  3. 表达式实时拼装在下方,点「复制」取走,贴进服务器的 crontab、CI 计划或调度面板。
  4. 用「接下来 5 次执行」核对结果:时间点与预期不符时,回头检查字段写法,而不是等线上跑空一轮才发现。

适用场景

  • 给日志清理、数据备份写定时任务,拿不准写法对不对,先看未来 5 次执行时间再上线。
  • 接手别人的服务器,面对一条陌生表达式,粘进来解析出执行节奏,判断任务实际何时在跑。
  • 配置 CI 定时构建或调度窗口,把「工作日早九点」这类需求翻译成表达式。
  • 排查「任务没按预期触发」:把表达式粘进来逐字段核对,确认语义与当初设想一致。

常见问题

提示「表达式无效或过于稀疏」是怎么回事?
字段里有解析不出任何合法值的写法,比如分钟填了 60、出现孤立逗号,或整个表达式在 8 年窗口内都不会命中。对照各字段的取值范围修正后重试;像 2 月 29 日这种稀疏日期,预览同样能在窗口内算出。
预览的执行时间和服务器实际触发时间对不上?
预览按浏览器当前时区计算,而 crontab 本身不带时区信息。服务器若运行在 UTC 等其他时区,同一表达式对应的本地时间会有偏移,核对前先把两边换算到同一时区。
能用于 Spring @Scheduled 或 Quartz 吗?
不能直接用。它们常见的是「秒 分 时 日 月 周」6 段式语法,本页只支持 5 段式 Linux crontab;把 6 段式去掉最左边的秒位,剩余五段可以粘进来核对语义。
日和周都填了具体值,为什么 13 号和周五都会跑?
这是 Vixie cron 的既定语义:日与周都受限时,任一命中即执行,0 0 13 * 5 表示每月 13 号或每个周五的 0 点。想要求两者同时满足,只能在任务脚本里再判断一次日期。
填的表达式会被上传或记录吗?
一切都在本机完成。表达式拼装、语义解析与执行时间推演都由页面内脚本在浏览器里执行,没有网络请求,也不会保存你输入过的字段。

基本操作

  • 点击预设或手动填写 5 个字段生成表达式
  • 复制表达式,查看接下来 5 次执行时间

规则说明

  • 按标准 Linux crontab 计算:日与周都受限(字段不以 * 开头,*/n 步长算不受限)时,任一命中即执行(如 `0 0 13 * 5` = 每月 13 号或每个周五)
  • 周日可用 0 或 7 表示;6 段式 Quartz 表达式暂不支持

相关工具