Cron 表达式在线生成器使用教程

什么是 Cron 表达式?

Cron 表达式是一种用于配置定时任务执行时间的字符串格式,最初源自 Unix/Linux 系统的 cron 守护进程。一个标准的 Cron 表达式由 6 到 7 个字段组成,每个字段用空格分隔,分别表示秒、分、时、日、月、周几和可选的年份。通过特殊的通配符(*)、逗号(,)、连字符(-)、斜杠(/)等符号,可以灵活地定义任务的执行时间规则。

Cron 表达式被广泛应用于 Linux crontab、Java Quartz 框架、GitHub Actions、Jenkins CI/CD 等各种定时任务调度系统中。ToolYou 提供的在线 Cron 表达式生成器支持可视化配置、实时预览、常用表达式库等功能,帮助您快速生成和理解 Cron 表达式。

Cron 表达式字段详解

一个完整的 Cron 表达式包含 6 到 7 个字段,从左到右依次表示:

0  0  9  *  *  1
│  │  │  │  │  │
│  │  │  │  │  └─ 周:1 = 周日(Quartz 约定)
│  │  │  │  └──── 月:* = 每月
│  │  │  └─────── 日:* = 每天
│  │  └────────── 时:9 = 上午 9 点
│  └───────────── 分:0 = 0 分
└──────────────── 秒:0 = 0 秒

字段取值范围特殊字符示例秒0-59* , - /0/5(每5秒)分钟0-59* , - /*/10(每10分钟)小时0-23* , - /9-18(9到18点)日1-31* ? L W15(每月15号)月1-12* , - /6(六月)周1-7(1=周日)* ? L #MON(星期一)年可选* , - /2025(指定年份)

特殊字符说明

📌 通配符 *

表示"每"、"任意"的意思。例如 * 在秒字段表示"每秒",* 在月字段表示\"每月\"。

📌 逗号 ,

表示"或",用于指定多个值。例如 1,3,5 表示第1、3、5天。

📌 连字符 -

表示范围,用于指定一个区间。例如 1-5 表示从1到5。

📌 斜杠 /

表示步长,用于指定间隔。例如 0/5 表示从0开始每隔5个单位。

📌 问号 ?

表示不指定值,仅用于日和周字段,避免冲突。

📌 L 字符

表示"最后",如 L 表示每月最后一天,5L 表示每月最后一个周五。

📌 W 字符

表示最近的工作日,如 15W 表示离15号最近的工作日。

📌 # 字符

表示第几个周几,如 5#2 表示每月的第二个周五。

ToolYou Cron 工具核心功能

⚡ 可视化字段配置

工具提供秒、分钟、小时、日、月份、周、年份七个配置面板,用户可通过下拉选择器直观地设置每个字段的值,无需记忆复杂的 Cron 语法。

📝 表达式实时预览

在配置字段时,工具实时生成对应的 Cron 表达式,并显示其含义解释。用户可以同时编辑表达式文本,工具会自动解析并同步到配置面板。

🕐 最近10次运行时间

工具根据配置的 Cron 表达式,实时计算并显示接下来10次的执行时间。每个时间点都显示完整格式和相对时间描述(如"2分钟后"),帮助用户验证表达式是否符合预期。

📋 常用 Cron 表达式库

工具内置了常用 Cron 表达式示例,涵盖每秒执行、每分钟执行、每小时执行、每天定时执行、每周执行、每月执行等多种场景,点击即可快速套用。

📋 一键复制表达式

支持一键复制生成的 Cron 表达式,方便直接粘贴到 crontab、Quartz 或其他定时任务系统中使用。

🌙 深色 / 浅色主题适配

工具支持深色和浅色两种视觉主题,用户可根据当前系统设置或个人偏好自由切换,减轻长时间使用时的视觉疲劳。

如何使用 Cron 表达式生成工具?

场景一:配置常见定时任务

  1. 访问页面:打开 /cron 工具页面

  2. 选择字段:在左侧配置面板中,通过 Tab 切换秒、分、时、日、月、周、年

  3. 设置值:在每个字段的面板中,选择合适的选项(如"每X秒"、"具体分钟"等)

  4. 查看结果:右侧实时显示生成的表达式、含义解释和最近10次运行时间

场景二:快速套用常用表达式

  1. 点击示例:在右侧「常用 cron 表达式例子」列表中,点击需要的示例

  2. 自动配置:工具自动将示例表达式填充到配置面板和表达式输入框

  3. 微调修改:根据需要调整某些字段,生成新的表达式

场景三:手动编辑表达式

  1. 直接输入:在表达式输入框中直接输入 Cron 表达式

  2. 自动解析:工具自动解析表达式并同步到各字段配置面板

  3. 实时验证:工具实时计算并显示最近10次运行时间

Cron 表达式常见应用场景

  • 日志轮转:每天凌晨0点生成新的日志文件,归档旧日志

  • 数据备份:每天晚上定时备份数据库和重要文件

  • 定时清理:每小时清理临时文件和缓存数据

  • 监控告警:每隔5分钟检查服务健康状态

  • 定时通知:每天早上9点发送日报或提醒

  • 周期性任务:每周/每月生成报表或统计数据

常见问题

Q: Cron 表达式中的 *? 有什么区别?

A: * 表示匹配所有值,? 表示不指定值。两者都用于日和周字段,但不能同时使用,因为它们会冲突。

Q: 为什么设置日字段为 31 时提示无效?

A: 并非所有月份都有31天,当设置为31时,工具会警告该表达式在某些月份不会执行。建议使用 L 表示每月最后一天。

Q: 周字段的 1 和 7 都表示周日吗?

A: 是的,1 和 7 都表示周日,这是 Cron 表达式的标准规范。

Q: 如何配置每周一早上9点执行?

A: 表达式为 0 0 9 * * 2,表示每周一9点0分0秒执行。

💡 提示:ToolYou 还提供Regex 表达式JSON 格式化JSONPath 查询XPath 查询等开发工具,欢迎访问!

返回知识中心