Cron 表达式生成与解析
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_ae3bd8e0/cron-expr。
技能介绍
为什么需要它
定时任务里真正容易出错的不是业务代码,而是 Cron 表达式:五位与六位字段含义不同、? 与 * 的混用、以及「每周一」到底落在「日」还是「周」字段上,都会在上线后才暴露。排错时你往往还要把 0 0 * * * 翻译成团队能读懂的调度语义。
技能如何工作
本技能围绕 生成、解析、验证 三条路径,全部在对话内完成本地计算:
- 生成:用中文描述调度意图(如「每天早上 9 点」「每个月 1 号凌晨 2 点」),返回对应的标准表达式。
- 解析:输入已有表达式(如
*/5 * * * *),输出中文可读说明(如「每 5 分钟」)。 - 验证:检查字段数量、取值范围与常见语法是否合法,避免把明显错误的串写进 crontab 或调度平台。
- 模板库:覆盖每小时、每天、每周、每月等常见场景,可作为起点再微调。
- 格式:同时支持标准 5 位(分 时 日 月 周)与带秒的 6 位(秒 分 时 日 月 周);向技能说明你要哪一种即可。
用法很直接:给出表达式或自然语言需求,技能返回解析结果或生成的表达式。
适用边界
- 不同运行时(Linux crontab、Quartz、K8s CronJob 等)对扩展语法、时区、是否支持秒字段的规则并不一致;本技能侧重 通用五/六位 Cron 的生成与可读化,具体平台仍以官方文档为准。
- 复杂组合(多时段、节假日排除、依赖上游 DAG)无法单靠一条表达式表达,需要调度系统或编排层配合,不要指望「一句话」覆盖全部场景。
使用场景
- 产品或运维用中文描述「每周一凌晨 3 点跑批」,需要落成标准五位 Cron 再写入 crontab 或调度控制台。
- 排查线上任务未触发时,对着 `*/10 * * * *` 等表达式要立刻得到中文含义,确认是否写错字段。
- 提交 Kubernetes CronJob 或带秒字段的六位表达式前,先做一次语法与取值范围校验,避免静默失败。
- 新任务只需「每小时」「每月 1 号」等常见节奏时,从模板生成表达式再按平台要求改五位或六位格式。
适合人员
- 维护定时备份、清档与报表脚本的后端工程师,经常要把中文时间点写成可部署的 Cron。
- 负责 Kubernetes CronJob、CI 定时流水线或内部调度平台的工程师,需要在五位与六位格式间切换并自检。
- 编写运行手册与事故复盘的 SRE,要把线上实际 Cron 逐条翻译成中文调度说明给值班同事对照。
- 从遗留 crontab 迁移到新调度系统的运维,需要解析旧表达式含义并验证在新环境是否仍然合法。