Cron 生成
本地处理* * * * *接下来 5 次执行
- 9/12/2026, 12:39:00 AM
- 9/12/2026, 12:40:00 AM
- 9/12/2026, 12:41:00 AM
- 9/12/2026, 12:42:00 AM
- 9/12/2026, 12:43:00 AM
使用指南
工具介绍
给服务器定时任务写 crontab,分、时、日、月、周五个字段的范围、步长与特殊符号全凭记忆,写错了往往要到任务没跑才发现。这个生成器把它们拆成五个独立字段,填好立刻拼出标准表达式,下方同步给出接下来 5 次执行时间,语义是否如你所想一眼可验。
表达式遵循标准 Linux crontab 语法:五个字段都支持逗号列表、范围与 */n 步长,比如分钟填 */15 就是每 15 分钟一次。六个预设按钮一键落出常用节奏,再精修个别字段,比从零手写快得多。
使用步骤
- 先从预设按钮里挑一个接近的模板:每分钟、每小时、每天 0:00、每周一 9:00、每月 1 号、每 15 分钟。
- 在五个字段里精修数值,取值范围标在字段标签上(分钟 0–59、小时 0–23、日 1–31、月 1–12、周 0–6),支持逗号、范围与 */n 步长;留空的字段按 * 处理。
- 表达式实时拼装在下方,点「复制」取走,贴进服务器的 crontab、CI 计划或调度面板。
- 用「接下来 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 表达式暂不支持