0 9 * * 1-5フィールド
| 分 | 0 | 0 |
|---|---|---|
| 時 | 9 | 9 |
| 日 | * | 任意 |
| 月 | * | 任意 |
| 曜日 | 1-5 | 1, 2, 3, 4, 5 |
使える場所
| crontab | 0 9 * * 1-5 /path/to/script.sh |
|---|---|
| GitHub Actions | - cron: "0 9 * * 1-5" (on.schedule) |
| Kubernetes CronJob | schedule: "0 9 * * 1-5" |
crontab はサーバーのタイムゾーンで動作します。GitHub Actions は常に UTC を使います。
知っておきたいこと
0 9 * * 1-5 は月曜日から金曜日の 09:00 に実行されます。ほとんどの cron は MON-FRI も受け付けます。大きな落とし穴はタイムゾーンです。UTC のサーバーで午前 9 時に送るレポートは、中央ヨーロッパでは夏時間かどうかによって 10:00 か 11:00 に届きます。また、GitHub Actions は常に UTC を使います。現地時刻に固定するには、cronie なら CRON_TZ=Europe/Warsaw を、Kubernetes の CronJob なら spec.timeZone を使います。
cron は祝日を知らないので、スクリプト内で祝日リストを確認して早めに終了してください。「月の最初の平日」のつもりで日フィールドと曜日フィールドを組み合わせてはいけません。両方のフィールドが制限されていると、cron はどちらかが一致すれば実行するため、0 9 1 * 1-5 は 1 日とすべての平日に起動します。平日の 9:00 と 17:00 には、0 9,17 * * 1-5 と書きます。