分钟 (0-59)
小时 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-7)
0 9 * * *2026-07-30 09:00
2026-07-31 09:00
2026-08-01 09:00
2026-08-02 09:00
2026-08-03 09:00
2026-08-04 09:00
工具说明
关于 Cron 表达式生成器
cron 生成器根据几项简单选择拼出标准的 5 字段 crontab 表达式,不用背字段顺序也能排好定时任务。
它覆盖 Linux cron、Kubernetes CronJob 和多数 CI 调度器使用的经典格式:分、时、日、月、周。没有秒字段,因此 Quartz 风格的 6 字段或 7 字段表达式不在支持范围内。
Cron Expression Generator 怎么用
- 先挑一个预设,比如每 5 分钟、每小时、每天零点、工作日 09:00,或每月 1 号。预设会把下方的字段控件填好,你可以继续微调。
- 每个字段有五种模式可调:Every 对应一个星号,Every N 对应 */15 这样的步长,Range 对应 9-17 这样的区间,List 对应 1,15,30 这样的枚举,Exact 对应单个数字。
- 边调边读实时更新的表达式,然后复制进 crontab、CI 配置或 CronJob 清单。
- 看一眼下方列出的未来 6 次执行时间。这份预览是发现某个值填错字段的最快办法。
什么时候用得上
- 安排每晚的数据库备份,要求在上班时间之前跑完。
- 按固定的每周或每月节奏轮转、归档日志。
- 在每日流量高峰前预热缓存或重建搜索索引。
- 每周一早上发一份报表,或每月 1 号跑计费任务。
- 触发每晚的 CI 构建,以及定期的证书续期检查。
最容易出错的 cron 语法规则
五个字段依次是分、时、日、月、周。绝大多数排错的调度,都栽在几条容易读岔的语义上。
- 当日和周两个字段都不是星号时,cron 用 OR 而不是 AND 把它们组合起来。所以 0 0 13 * FRI 表示每月 13 号或者每个周五,而不是只在黑色星期五那天。
- */15 这样的步长从 0 开始、每 15 个单位重复一次,得到 0、15、30、45。写成 5/15 则从 5 开始一直跑到最大值,得到 5、20、35、50。
- 在周字段里 0 和 7 都表示周日,所以同一个调度可以有两种写法。
- 月和周字段接受三字母名称,例如 JAN 到 DEC、MON 到 SUN。
- cron 按持有该调度的机器的本地时区运行,部署前务必确认这个时区。夏令时切换可能会跳过或重复某个整点档。
Cron 生成器常见问题
- 这个工具支持秒字段吗?
- 不支持。它只产出标准的 5 字段 crontab 格式。Quartz 和部分 Java 调度器用 6 或 7 个字段,带秒和可选的年份,这里不生成。
- 为什么我同时设了日和周,任务却比预期跑得更频繁?
- 因为两个字段都不是星号时,cron 按 OR 处理。要严格的 AND 条件,就把 cron 排宽一些,在任务内部再加一道日期判断。
- 每分钟跑一次任务安全吗?
- 只有单次执行远远快于一分钟时才安全。否则多次执行会重叠并越积越多,此时应加锁文件或单实例保护,或者改用更长的间隔。
- 预览的执行时间用的是哪个时区?
- 预览用的是你浏览器的时区。真正执行调度的机器用它自己的时区,依赖精确到小时之前请确认两者一致。
- 我的调度会被上传吗?
- 不会。wetool.site 上的每个表达式都完全在你的浏览器里生成和预览,你输入的内容不会发往任何服务器。
cron 生成器与 cron 解析器
本站的 cron 解析器解决的是反过来的问题:你手上已经有一个表达式,想知道它是什么意思、下次什么时候触发。生成器走的是另一个方向,把你能用语言描述的调度变成正确的语法。两者互补,生成表达式之后可以粘进解析器,作为一次独立的复核。
上线调度前的检查
看起来没问题的表达式,放到真实服务器上照样可能在错误的时刻触发。花一小会儿复核能挡掉大部分问题。
- 把未来 6 次执行时间和你的预期对一遍,尤其是第一次,它能立刻暴露字段错位一格的问题。
- 确认执行机器或容器的时区,跨地区的系统优先用 UTC。
- 把重任务分散到不同分钟上,别全堆在第 0 分钟。
- 想清楚主机宕机期间错过一次执行该怎么办,因为标准 cron 不会补跑漏掉的任务。