Cron

Cron 语法用于安排作业何时运行。

您可能需要使用 cron 语法字符串来创建流水线计划,或通过设置部署冻结,来防止意外发布。

Cron 语法

Cron 计划使用一系列五个数字,以空格分隔:

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <command to execute>

在 cron 语法中,星号 (*) 表示“每个”,因此以下 cron 字符串有效:

  • 每小时开始时运行一次:0 * * * *
  • 每天午夜运行一次:0 0 * * *
  • 每周在周日早上的午夜运行一次:0 0 * * 0
  • 每月第一天午夜运行一次:0 0 1 * *
  • 每月 22 日运行一次:0 0 22 * *
  • 每个月的第二个星期一运行一次:0 0 * * 1#2
  • 每年 1 月 1 日午夜运行一次:0 0 1 1 *
  • 每隔一个星期日在 0900 时运行:0 9 * * sun%2

有关完整的 cron 文档,请参阅 crontab(5) — Linux 手册页。 通过在 Linux 或 MacOS 终端中输入 man 5 crontab,可以离线访问该文档。

Cron 示例

# Run at 7:00pm every day:
0 19 * * *

# Run every minute on the 3rd of June:
* * 3 6 *

# Run at 06:30 every Friday:
30 6 * * 5

有关如何编写 cron 计划的更多示例,请参见 crontab.guru

极狐GitLab 如何解析 cron 语法字符串

极狐GitLab 使用 fugit 解析服务器上的 cron 语法字符串,并使用 cron-validator 在浏览器中验证 cron 语法。极狐GitLab 使用 cRonstrue 在浏览器中将 cron 转换为可读的字符串。