输入Cron表达式,自动解释含义并显示未来5次执行时间。纯本地运行,数据不上传,保护隐私。
凌晨三点服务器日志突然不滚动了,排查半天发现crontab里把 0 3 * * * 写成了 0 3 * —— 少了一个星号,任务直接静默失效。这类问题在运维和后端开发中极其常见:Cron语法本身不算复杂,但五个字段挤在一行,用空格分隔,稍不留神就会写错位置或漏掉字段,而且出错后没有任何报错提示,任务只是不执行,排查起来很费时间。这个计算器的初衷就是让你不用手写、不用背语法,勾选几下就能生成正确的表达式,同时还能反查已有表达式的含义和未来触发时间。
给数据库配凌晨备份任务时,用计算器确认 0 2 * * * 确实是每天两点而不是两天一次。接手别人留下的crontab时,把看不懂的表达式粘进来反查含义。新同事学Linux运维时,用可视化界面理解星期字段和日期字段的「或」关系。写K8s CronJob YAML时,先在这里验证表达式再贴到配置里。
验证已有表达式:直接粘贴到输入框,点「解释」,下方会展示下一次触发时间和后续多次触发列表。生成新表达式:通过下拉菜单选择分钟、小时等各字段的值,勾选需要的选项,表达式会实时拼接显示。也可以直接从预设列表里挑一个接近的,再微调。
0 0 1 * 1 是每月1号或每周一都执行,不是每月1号且恰好是周一才执行*/5 表示从该字段最小值开始每隔5个单位触发,不是「第5分钟」从左到右依次是「分 时 日 月 周」,可以记成「分时日月星」。取值范围分别是0-59、0-23、1-31、1-12、0-7(0和7都是周日)。五个字段之间用空格隔开,多写少写空格都会导致解析失败。
0 8 * * 1 —— 分=0(整点),时=8,日和月用星号表示不限制,周=1代表周一。部分系统也支持用 mon 代替数字1,但纯数字写法兼容性最好。如果你写成了 0 8 1 * *,那就变成了「每月1号的8点」而不是「每周一」,字段顺序很关键。
效果完全相同,都表示从0开始每隔5分钟触发一次,即0、5、10、15......55。*/5 是简写形式,实际等价于 0,5,10,15,20,25,30,35,40,45,50,55。大多数情况下直接用 */5 就行,更简洁。
标准Crontab最小粒度是分钟,没法直接写90秒。变通方案是写两条规则:*/1 * * * * 每分钟执行,然后在脚本内部判断上次执行是否过了90秒。或者用Quartz等支持秒级字段的调度框架。本工具遵循标准5位格式,不涉及秒级。
是「或」关系。比如 0 0 1 * 1 表示「每月1号的零点」或者「每周一的零点」都会触发,不是「1号且恰好是周一」才触发。这是Cron语法里最容易误解的点,如果你需要「且」的逻辑,得在脚本里自行判断当天是否同时满足两个条件。