Cron 表达式可视化生成器

在线 Cron 表达式可视化编辑器:可视化生成、解析五字段 Cron 语法,预览未来 5 次执行时间,提供常用模板与一键复制。适合 Linux crontab、Kubernetes CronJob、CI/CD 定时任务。

最后更新:

💡 如何在 Linux 上使用 Cron:

• 编辑:crontab -e

• 查看:crontab -l

可视化编辑器

输入要执行的命令或脚本路径

完整 Cron 配置

0 0 * * * /path/to/your/script.sh

复制后使用 crontab -e 粘贴到配置文件中

常用表达式

Cron 表达式字段语义

标准 Cron 表达式由 5 个字段组成,按空格分隔,依次表示:分钟、小时、日、月、星期。 详细语义可参考 Debian crontab(5) Kubernetes CronJob 文档。

位置字段取值范围特殊字符
1分钟0-59* , - /
2小时0-23* , - /
31-31* , - /
41-12* , - /
5星期0-7(0 与 7 均为周日)* , - /

特殊字符含义

  • * 表示该字段所有合法取值
  • , 列举多个独立值,如 1,3,5
  • - 表示连续范围,如 1-5
  • / 表示步长,如 */15 表示每 15 个单位

常用模式速查

需求表达式说明
每 15 分钟*/15 * * * *0、15、30、45 分触发
工作日 9-18 点整点0 9-18 * * 1-5周一至周五的 9、10…18 点
每月 1 号凌晨 3 点0 3 1 * *月度报表、月初清理
每周日 23:3030 23 * * 0周报、备份归档
每 2 小时0 */2 * * *从 0 点起每 2 小时一次
每天 0、6、12、18 点0 0,6,12,18 * * *显式列举优于步长,可读性更好
每年 1 月 1 日0 0 1 1 *年度任务
每 5 秒(Quartz/Spring)*/5 * * * * ?6 字段格式,标准 cron 不支持

Cron 方言与平台差异

"Cron 表达式"在不同实现中并非完全一致。本工具只覆盖最经典的 5 字段标准 cron; 以下是其它常见方言的差异:

  • POSIX cron:5 字段,最小粒度分钟。规范见 IEEE Std 1003.1 crontab
  • Vixie cron / cronie(Debian、Ubuntu、RHEL 默认):在 POSIX 基础上扩展支持 / 步长、月份与星期的英文缩写、特殊串如 @daily@reboot
  • Quartz / Spring:6 或 7 字段(秒 分 时 日 月 周 [年]),额外支持 L(最后一天 / 最后一个星期 X)、W(最近的工作日)、#(一个月的第 N 个周 X)。Spring 6 + 默认风格。
  • Kubernetes CronJob:5 字段标准 cron;自 1.27 起支持 spec.timeZone,1.25 之前默认 kube-controller-manager 时区(通常是 UTC)。
  • AWS EventBridge:6 字段(分 时 日 月 周 年),不允许同时为 指定具体值,必须有一个是 ?
  • GitHub Actions:5 字段标准 cron,最小间隔 5 分钟,时区强制 UTC。

常见易错点

  • 日与星期都不为 *:Vixie cron 把两者当成"或"语义,会比预期触发更频繁。
  • 步长起点*/5 等价于 0-59/5,从 0 起算;5/10 才表示从 5 开始每 10 个。
  • 时区:crontab 默认使用系统时区。Kubernetes CronJob 1.27+ 支持spec.timeZone,注意不要把 UTC 表达式直接塞进 +08:00 容器。
  • 夏令时:跨越 DST 切换时,某一小时可能被跳过或重复执行。
  • 命令中的 %:crontab 中的 % 是特殊字符,需要转义为 \%

常见问题

如何写出"每 15 分钟执行一次"的 Cron 表达式?

使用 */15 * * * *,其中 */15 表示分钟字段按 15 步长递增(即 0、15、30、45),其余字段保留通配符。

Cron 中星期字段 0 是周几?

在标准 POSIX 与 Vixie cron 中,星期字段 0 与 7 都表示星期日,1 表示星期一,依此类推。

为什么"日"和"星期"同时指定会出现"或"的语义?

经典的 Vixie cron 实现规定:当"日"与"星期"都不是 *,则任一字段匹配即触发,是 OR 而不是 AND。这是常见陷阱,请避免同时限定两者。

本工具支持 6 字段或 7 字段(带秒)的 Cron 吗?

当前仅支持标准 5 字段 Cron。带秒的 Quartz/Spring 风格暂未支持,可放在后续版本。

执行时间显示的是哪种时区?

全部基于浏览器本地时区计算。如果服务器与本机时区不同,请在生产环境再次确认。