0 */6 * * *フィールド
| 分 | 0 | 0 |
|---|---|---|
| 時 | */6 | 0, 6, 12, 18 |
| 日 | * | 任意 |
| 月 | * | 任意 |
| 曜日 | * | 任意 |
使える場所
| crontab | 0 */6 * * * /path/to/script.sh |
|---|---|
| GitHub Actions | - cron: "0 */6 * * *" (on.schedule) |
| Kubernetes CronJob | schedule: "0 */6 * * *" |
crontab はサーバーのタイムゾーンで動作します。GitHub Actions は常に UTC を使います。
知っておきたいこと
0 */6 * * * はサーバー時刻の 00:00、06:00、12:00、18:00 に実行されます。ステップの起点はジョブを登録した時刻ではなく午前 0 時です。03:00、09:00、15:00、21:00 に実行するには、0 3-23/6 * * * または 0 3,9,15,21 * * * と書きます。12 時間ごとは 0 */12 * * * で午前 0 時と正午に実行され、4 時間ごとは 0 */4 * * * です。
これらは現地時刻の固定の時刻なので、夏時間によって UTC に対してずれます。春の切り替え時には 00:00 と 06:00 の実行の間に実際には 5 時間しか経過せず、秋には 7 時間経過します。正確な間隔が重要なら、サーバーを UTC で動かすか、cronie のように CRON_TZ に対応した cron を使ってください。この時間帯に長いバックアップを実行するなら、flock -n とログへの出力の追記が必要です。