GitHub Actions cron 转 crontab
GitHub Actions 的字段是 分 时 日 月 星期;crontab 的字段是 分 时 日 月 星期。粘贴表达式即可转换,不能精确对应的部分会标出原因和替代写法。
目标 · crontab等价按系统时区运行;cronie 还支持 CRON_TZ=。
0 9 * * 1-5GitHub Actions 与 crontab 的区别
| GitHub Actions | crontab | |
|---|---|---|
| 字段 | 分 时 日 月 星期 | 分 时 日 月 星期 |
| 周日 | 0 | 0 或 7 |
| 日和星期都设置时 | 任一满足 | 任一满足;有一个以 * 开头时需同时满足 |
| 特殊字符 | 无 | 无 |
| 简写 | 无 | @reboot @yearly @monthly @weekly @daily @hourly |
| 时区 | UTC,或每条加 timezone: | 系统时区;cronie 支持 CRON_TZ= |
| 最短间隔 | 5 分钟,尽力而为 | 1 分钟 |
常用调度转换结果
| GitHub Actions | crontab | |
|---|---|---|
| 每 5 分钟 | */5 * * * * | */5 * * * * |
| 每小时 | 0 * * * * | 0 * * * * |
| 每 10 分钟 | */10 * * * * | */10 * * * * |
| 每 15 分钟 | */15 * * * * | */15 * * * * |
| 每 30 分钟 | */30 * * * * | */30 * * * * |
| 每天零点 | 0 0 * * * | 0 0 * * * |
| 每天早上 9 点 | 0 9 * * * | 0 9 * * * |
| 工作日早上 9 点 | 0 9 * * 1-5 | 0 9 * * 1-5 |
| 每周一 | 0 0 * * 1 | 0 0 * * 1 |
| 每月 1 号 | 0 0 1 * * | 0 0 1 * * |
| 每 6 小时 | 0 */6 * * * | 0 */6 * * * |
| 每周日零点 | 0 0 * * 0 | 0 0 * * 0 |
| 每 2 小时 | 0 */2 * * * | 0 */2 * * * |
| 每 12 小时 | 0 */12 * * * | 0 */12 * * * |
| 每天中午 12 点 | 0 12 * * * | 0 12 * * * |
| 每周五 | 0 0 * * 5 | 0 0 * * 5 |
| 每季度 | 0 0 1 */3 * | 0 0 1 */3 * |
| 每 3 小时 | 0 */3 * * * | 0 */3 * * * |
| 每天早上 6 点 | 0 6 * * * | 0 6 * * * |
| 每天晚上 6 点 | 0 18 * * * | 0 18 * * * |
| 每天两次 | 0 */12 * * * | 0 */12 * * * |
| 工作日晚上 6 点 | 0 18 * * 1-5 | 0 18 * * 1-5 |
| 周末上午 10 点 | 0 10 * * 0,6 | 0 10 * * 0,6 |
| 每月 15 号 | 0 0 15 * * | 0 0 15 * * |
| 每年一次 | 0 0 1 1 * | 0 0 1 1 * |
| 每 20 分钟 | */20 * * * * | */20 * * * * |
| 每 4 小时 | 0 */4 * * * | 0 */4 * * * |
| 每 8 小时 | 0 */8 * * * | 0 */8 * * * |
| 每天凌晨 1 点 | 0 1 * * * | 0 1 * * * |
| 每天凌晨 2 点 | 0 2 * * * | 0 2 * * * |
| 每天凌晨 3 点 | 0 3 * * * | 0 3 * * * |
| 每天早上 8 点 | 0 8 * * * | 0 8 * * * |
| 每个工作日 | 0 0 * * 1-5 | 0 0 * * 1-5 |
| 每个周末 | 0 0 * * 0,6 | 0 0 * * 0,6 |
| 每周二 | 0 0 * * 2 | 0 0 * * 2 |
| 每周三 | 0 0 * * 3 | 0 0 * * 3 |
| 每周四 | 0 0 * * 4 | 0 0 * * 4 |
| 每周六 | 0 0 * * 6 | 0 0 * * 6 |
| 每 6 个月 | 0 0 1 */6 * | 0 0 1 */6 * |
常见问题
所有 GitHub Actions 表达式都能转成 crontab 吗?
本页 39 个常用调度全部可以等价转换。用到 crontab 没有的特殊字符时仍会标出来。
GitHub Actions 和 crontab 里周日怎么写?
GitHub Actions:0。crontab:0 或 7。
时区会一起转过去吗?
表达式本身不带时区。GitHub Actions:UTC,或每条加 timezone:。crontab:系统时区;cronie 支持 CRON_TZ=。