最近5次执行时间预览
常见Cron表达式速查表
| Cron表达式 | 说明 |
|---|---|
| * * * * * | 每分钟执行 |
| */5 * * * * | 每5分钟执行 |
| 0 * * * * | 每小时执行 |
| 0 0 * * * | 每天午夜执行 |
| 0 9 * * 1 | 每周一上午9点执行 |
| 0 0 1 * * | 每月1号午夜执行 |
| 0 0 * * 1-5 | 工作日每天午夜执行 |
| 0 0,12 * * * | 每天午夜和中午执行 |
| 0 0 1 1 * | 每年1月1日午夜执行 |
| 0 0 * * 0 | 每周日午夜执行 |
| 0 0 L * * | 每月最后一天午夜执行 |
| 0 0 1-7 * 1 | 每月第一个周一执行 |
使用教程
本Cron表达式生成器提供可视化编辑与实时预览功能,以下是详细的使用方法:
选择格式:页面顶部提供5位(标准Linux crontab)、6位(带秒,适用于Spring/Quartz)和7位(带年)三种格式切换按钮。根据目标调度系统选择对应格式,切换后输入区域会自动调整字段数量。
可视化编辑:每个Cron字段(秒、分、时、日、月、周、年)都有独立的编辑面板,支持直接输入数值、勾选多个值以及快捷操作(全选、清除、反选)。例如,在「分钟」字段中勾选0、15、30、45即可实现每15分钟执行一次。字段下方会显示当前有效范围,输入超出范围的值会标红提示。
预设与速查:点击预设按钮可快速填入常用表达式(如「每分钟」「每天午夜」「每周一」等)。下方的Cron速查表列出了最常见的表达式及其含义,点击任意行即可加载到编辑器中。
执行时间预览:编辑完成后,预览表格会实时显示最近5次执行时间及距今剩余时间。如果表达式无效,预览区域会显示错误提示。确认无误后,点击复制按钮即可将表达式复制到剪贴板。工具还会自动生成中文可读化解释,例如将0 9 * * 1-5解释为「每周一至周五上午9点00分执行」。
应用场景
Cron表达式是定时任务调度领域的通用语言,以下是几个核心的应用场景:
Linux系统运维:在Linux/Unix服务器上,crontab是管理定时任务的标准工具。运维人员使用Cron表达式配置日志轮转、数据备份脚本、系统监控检查、定时清理临时文件等周期性任务。例如0 2 * * *表示每天凌晨2点执行备份。
后端服务开发:Spring框架的@Scheduled注解、Quartz调度器、Elastic-Job等任务调度框架均使用Cron表达式定义执行周期。开发者常需要精确控制任务执行时间,如0 0 9 * * MON表示每周一上午9点生成周报,0 0 0 1 * ?表示每月1号零点执行月结。
云原生与DevOps:Kubernetes CronJob使用Cron表达式调度集群中的定时任务,如定期同步数据、清理过期资源。CI/CD流水线(如GitLab CI的schedule管道、Jenkins定时构建)也依赖Cron表达式触发自动化流程。
扩展知识
Cron的起源:Cron名称源自希腊语「Chronos」(时间),最早由贝尔实验室于1975年在Unix V7中引入。最初仅支持5字段格式,随着Spring、Quartz等框架的发展,逐渐扩展出6位(秒)和7位(年)格式。
特殊字符详解:除了基本的*(任意)、,(列表)、-(范围)、/(步长)外,部分实现还支持?(不指定,用于日期和星期互斥)、L(最后,如0 0 L * *表示每月最后一天)、W(最近工作日)、#(第几个,如0 0 0 ? * 2#1表示每月第一个周一)等高级特性。
实现差异:不同系统对Cron的解析存在差异。Linux crontab使用5字段,日期和星期为「或」关系;Quartz使用6-7字段,日期和星期为「与」关系(需用?占位);Spring的Cron序列化器要求6字段且星期字段0和7均表示周日。建议根据目标系统选择对应格式并查阅文档。
常见问题 (FAQ)
Cron表达式是什么?
Cron表达式是一种用于定义定时任务执行时间的字符串格式,广泛应用于Linux crontab、Spring Scheduler、Quartz、Kubernetes CronJob等系统中。它由5个或6个字段组成,分别表示分钟、小时、日期、月份、星期(以及可选的秒和年)。
Cron表达式各字段的含义是什么?
标准5字段Cron格式为「分 时 日 月 周」。6位格式在最前面增加了「秒」字段。7位格式在最后增加了「年」字段。各字段可用特殊字符包括:*(任意)、,(列表)、-(范围)、/(步长)。例如「*/5」表示每5个单位执行一次。
如何预览Cron表达式的执行时间?
在本工具中输入或编辑Cron表达式后,下方的「最近5次执行时间预览」区域会实时显示接下来的5次触发时间,帮助您确认表达式是否符合预期。每个执行时间旁边还显示了距离现在的剩余时间。
6位和5位Cron表达式有什么区别?
5位Cron是Unix/Linux系统的标准格式(分 时 日 月 周)。6位Cron在最前面增加了「秒」字段(秒 分 时 日 月 周),常见于Spring框架和Quartz调度器中。如果您使用的系统不支持秒字段,请选择5位格式。
为什么星期和日期同时设置时可能不按预期执行?
大多数Cron实现中,日期(Day of Month)和星期(Day of Week)字段是「或」关系而非「与」关系。也就是说,只要满足其中一个条件就会执行。如果需要同时满足,某些系统(如Quartz)支持用「?」占位符来实现。建议尽量只设置其中一个字段,另一个用 * 表示。
Cron支持的最小时间间隔是多少?
标准5字段Cron的最小间隔是1分钟。使用6字段格式(带秒)时,最小间隔可以达到1秒。但实际调度系统的最小间隔还受限于调度器本身的实现,例如Linux crontab最小支持到分钟级别,而Java Quartz和Spring Task支持秒级调度。