什么是 Cron 表达式?
Cron 表达式是一个由五个字段组成的字符串,用于定义 Unix 类系统上的重复任务计划。每个字段代表一个时间单位:分钟、小时、月份中的日期、月份和周几。
常见用途
系统管理
CI/CD 管道
云服务
应用框架
表达式格式
标准 cron 表达式由 5 个字段组成,用空格分隔,每个字段代表一个特定的时间分量:
┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, 0 = Sunday)
│ │ │ │ │
* * * * *
特殊字符
通配符:*
匹配字段中的任何值
- 当您想要所有可能的值时使用
- 示例:
* * * * *每分钟运行一次
列表:,
分隔多个特定值
- 示例:
1,3,5表示值 1、3 和 5 - 适用于非连续值
范围:-
定义连续的值范围
- 示例:
1-5表示值 1 到 5 - 包括开始和结束值
步长:/
定义间隔或增量
- 示例:
*/5表示每 5 个单位 - 可与范围组合:
10-30/5
如何使用此工具
此 cron 表达式构建器提供三种灵活的方法来创建和验证您的计划。选择最适合您工作流程的方法。
可视化构建器方法
使用直观的界面构建表达式,无需记忆语法:
选择时间字段
选择要配置的字段:分钟、小时、月份中的日期、月份或周几。每个字段都用颜色编码,便于识别。
选择配置模式
从四种可用模式中选择:
- 每次 — 通配符(
*)匹配所有值 - 每 N 次 — 定期间隔(例如,每 5 分钟)
- 特定 — 从可点击的网格中选择确切值
- 范围 — 定义开始和结束值
审查和验证
表达式、人类可读的描述和下次运行时间会在您进行更改时自动更新。
直接输入方法
对于喜欢直接输入 cron 语法的有经验的用户:
点击表达式字段
点击工具顶部显示的 5 个表达式字段中的任何一个。
输入您的值
使用标准语法直接输入您的 cron 值:
*/5用于间隔0,30用于特定值9-17用于范围
自动同步
可视化构建器会自动更新以反映您的输入,提供即时验证和反馈。
快速预设方法
从常用的计划开始,然后根据需要自定义:
每分钟
* * * * *每分钟运行一次
每 5 分钟
*/5 * * * *每 5 分钟运行一次
每天午夜
0 0 * * *每天 00:00 运行
工作日上午 9 点
0 9 * * 1-5周一至周五 9:00
每月 1 号
0 0 1 * *每月的第一天
点击任何预设按钮即可立即加载计划,然后根据需要使用可视化构建器或直接输入进行修改。
验证您的表达式
功能
彩色编码字段
5 个 cron 字段中的每一个都用不同的颜色显示,与相应的构建器部分相匹配。
- 即时视觉识别
- 轻松跟踪您正在编辑的字段
- 减少配置错误
可视化构建器
使用直观的控件构建表达式,无需记忆 cron 语法。
- 每个字段 4 种配置模式
- 用于特定值的可点击网格
- 范围的滑块控件
人类可读的描述
每个表达式都会立即转换为纯英文。
- 清晰、自然的语言输出
- 示例:
0 9 * * 1-5→ "在 09:00,周一至周五" - 消除猜测
下次执行时间
根据当前日期和时间查看接下来 5 次运行时间。
- 完整的日期和时间显示
- 相对时间戳(例如"在 2 小时 30 分钟后")
- 实时更新
实时验证
无效值会立即被捕获,并显示具体的错误消息。
- 值范围检查
- 语法格式验证
- 字段约束验证
双向同步
直接编辑表达式字段或使用可视化构建器 — 两者保持同步。
- 即时双向更新
- 无缝切换方法
- 切换模式时不会丢失数据
快速预设
九个常用计划可作为一键预设。
- 从每分钟到每年的计划
- 业务时间配置
- 即时加载和自定义
语法速查表
工具底部包含可折叠的参考表。
- 每个字段的允许值
- 特殊字符的含义
- 快速语法示例
隐私优先
所有处理都完全在您的浏览器中进行。
- 无服务器通信
- 无数据收集
- 初始加载后可离线工作
常见问题
此工具支持哪种 cron 格式?
此工具支持 Unix/Linux crontab 使用的标准 5 字段 cron 格式:分钟、小时、月份中的日期、月份和周几。
当同时设置"月份中的日期"和"周几"时会发生什么?
在标准 cron 中,当两个字段都被指定(不是 *)时,如果任一条件满足,任务就会运行(或逻辑)。
0 0 15 * 1
# Runs at midnight on:
# - The 15th of every month (regardless of day of week)
# - AND every Monday (regardless of day of month)
这意味着任务的执行频率可能比您最初预期的要高。要仅在特定组合上运行,请将其中一个字段设置为 *。
*/5 是什么意思?
/ 字符定义步长值或间隔。分钟字段中的 */5 表示"每 5 分钟",从 0 开始。
分钟字段中的 */5
运行时间:每小时的 0、5、10、15、20、25、30、35、40、45、50、55 分钟
分钟字段中的 10-30/5
运行时间:每小时的 10、15、20、25、30 分钟(10 到 30 之间每 5 分钟)
星期日是 0 还是 7?
在标准 cron 中,星期日是 0,星期六是 6。周几字段使用 0-6 范围:
0= 星期日1= 星期一2= 星期二3= 星期三4= 星期四5= 星期五6= 星期六
7 表示星期日,但此工具使用标准 0-6 范围以获得最大兼容性。我的数据会被发送到服务器吗?
不会。所有表达式构建、验证、描述生成和下次运行计算都完全在您的浏览器中使用 JavaScript 进行。
我可以将其用于 AWS、GitHub Actions 或 Kubernetes 吗?
此工具生成的标准 5 字段 cron 语法与大多数平台和服务兼容:
- Linux/Unix crontab
- AWS CloudWatch Events
- GitHub Actions(计划触发器)
- Kubernetes CronJobs
- Laravel 任务调度
- GitLab CI/CD 计划
- Google Cloud Scheduler
例如,AWS CloudWatch Events 使用带有额外年份字段的 6 字段格式,而 Quartz 调度器(在 Java 应用程序中使用)支持包括秒的 7 个字段。
还没有评论,快来发表第一条!