在线 Cron 表达式生成器,可视化生成 Cron 表达式,支持 Linux Crontab 格式
使用场景
做后端开发和运维的同学每天和 Cron 打交道。你要写一个定时任务每天早上 8 点跑备份、每周一凌晨 3 点清理日志、每月 1 号发送报表——这些都得用 Cron 表达式来表达。但 Cron 表达式的格式有 5 个字段(分、时、日、月、周),组合起来很容易搞混。比如"每天凌晨 2 点"是 “0 2 * * *",但"每隔两小时"就是 “0 */2 * * *",写错了任务就不按预期执行。
运维工程师用得更频繁。公司有几十台服务器,上面跑着各种定时任务:日志切割、数据备份、证书续期、监控采集……每次加一个新任务都要写 Cron 表达式。新手容易把周日写成 7,但其实标准 Crontab 里周日是 0。有了可视化工具,点选一下"每周一、周三、周五的凌晨 3 点”,表达式自动生成,复制到服务器 crontab 文件里就行了。
做自动化测试的人也会用到。很多自动化测试框架支持用 Cron 表达式设置执行频率,比如每天下班后跑一次回归测试。写这种表达式的时候用生成器辅助,比硬记语法靠谱得多。
常见问题
问:Cron 表达式中 5 个字段分别代表什么? 答:依次是:分钟(0-59)、小时(0-23)、日期(1-31)、月份(1-12)、星期(0-7,0 和 7 都代表周日)。有些系统(如 Quartz)还有第 6 个字段表示秒。这个工具默认用标准 Crontab 的 5 字段格式。
问:*/5 这个写法是什么意思? 答:表示"每隔 5”。用在分钟字段就是"每隔 5 分钟",用在小时字段就是"每隔 5 小时"。星号(*)表示"每",斜杠表示"间隔"。比如 “0 */2 * * *” 表示每隔 2 小时的整点执行一次。
问:能不能指定"每月的最后一个工作日"这种复杂规则? 答:标准 Crontab 不支持这种语义。如果需要"每月最后一个工作日"这样复杂的调度逻辑,通常会用脚本配合 date 命令判断,或者用更强大的调度工具如 Apache Airflow。这个工具生成的是标准 Crontab 格式的组合。
相关工具推荐
- Cron 表达式解析器 - 解析已有 Cron 表达式,查看执行时间
- 时间戳转换器 - 时间格式转换
- 时区转换器 - 跨时区时间计算