cron
cron構文は、ジョブの実行をスケジュールするために使用します。
パイプラインのスケジュールを作成したり、デプロイフリーズを設定して意図しないリリースを防ぐために、cron構文文字列を使用する必要があるかもしれません。
cron構文
cronのスケジューリングでは、スペースで区切られた5つの数字を使用します:
# ┌───────────── 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構文では、アスタリスク(*
)は’every’を意味するので、以下のcron文字列は有効です:
- 1時間に1回、毎正時に実行します:
0 * * * *
- 1日1回、午前0時に実行
0 0 * * *
- 週1回、日曜日の午前0時に運行:
0 0 * * 0
- 月1回、毎月1日の午前0時に運行:
0 0 1 * *
- 毎月1回、22日に実行:
0 0 22 * *
) - 毎月1回、第2月曜日に開催:
0 0 * * 1#2
- 年1回、1月1日午前0時に実施:
0 0 1 1 *
- 隔週日曜日0900時
0 9 * * sun%2
- この構文はfugit modulo extensionのものです。
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構文を検証するためにcron-validatorを使用します。GitLabはcRonstrue
、ブラウザ上でcronを人間が読める文字列に変換します。