Help us learn about your current experience with the documentation. Take the survey.
Cron
Cron 语法用于安排任务何时运行。
您可能需要使用 cron 语法字符串来 创建 流水线调度, 或通过设置 部署冻结 来防止意外发布。
Cron 语法
Cron 调度使用一系列由空格分隔的五个数字:
# ┌───────────── 分钟 (0 - 59)
# │ ┌───────────── 小时 (0 - 23)
# │ │ ┌───────────── 日期 (1 - 31)
# │ │ │ ┌───────────── 月份 (1 - 12)
# │ │ │ │ ┌───────────── 星期 (0 - 6) (周日到周六)
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <要执行的命令>(来源:Wikipedia)
在 cron 语法中,星号 (*) 表示"每",因此以下 cron 字符串
是有效的:
- 每小时开始时运行一次:
0 * * * * - 每天午夜运行一次:
0 0 * * * - 每周日凌晨午夜运行一次:
0 0 * * 0 - 每月1号午夜运行一次:
0 0 1 * * - 每月22号运行一次:
0 0 22 * * - 每年1月1号午夜运行一次:
0 0 1 1 * - 每月1号和15号凌晨3点运行两次:
0 3 1,15 * *
有关完整的 cron 文档,请参阅
crontab(5) Linux 手册页。
通过在 Linux 或 MacOS 终端中输入 man 5 crontab 可以离线访问此文档。
此外,GitLab 使用 fugit,
它接受 # 和 % 语法。此语法可能在所有 cron 测试工具中都不起作用:
- 每月第二个星期一运行一次:
0 0 * * 1#2。此语法来自fugithash 扩展。 - 每隔周日上午9点运行一次:
0 9 * * sun%2。此语法来自fugitmodulo 扩展。
Cron 示例
# 每天19:00运行:
0 19 * * *
# 每月3号每分钟运行一次:
* * 3 6 *
# 每周五06:30运行:
30 6 * * 5更多关于如何编写 cron 调度的示例可以在 crontab.guru 找到。
GitLab 如何解析 cron 语法字符串
GitLab 使用 fugit 在服务器上解析 cron 语法
字符串,并使用 cron-validator
在浏览器中验证 cron 语法。GitLab 使用
cRonstrue 在浏览器中将 cron 转换为人类可读的字符串。