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 表达式生成工具?
场景一:配置常见定时任务
访问页面:打开 /cron 工具页面
选择字段:在左侧配置面板中,通过 Tab 切换秒、分、时、日、月、周、年
设置值:在每个字段的面板中,选择合适的选项(如"每X秒"、"具体分钟"等)
查看结果:右侧实时显示生成的表达式、含义解释和最近10次运行时间
场景二:快速套用常用表达式
点击示例:在右侧「常用 cron 表达式例子」列表中,点击需要的示例
自动配置:工具自动将示例表达式填充到配置面板和表达式输入框
微调修改:根据需要调整某些字段,生成新的表达式
场景三:手动编辑表达式
直接输入:在表达式输入框中直接输入 Cron 表达式
自动解析:工具自动解析表达式并同步到各字段配置面板
实时验证:工具实时计算并显示最近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 查询等开发工具,欢迎访问!