0 0 1 1 *フィールド
| 分 | 0 | 0 |
|---|---|---|
| 時 | 0 | 0 |
| 日 | 1 | 1 |
| 月 | 1 | 1 |
| 曜日 | * | 任意 |
使える場所
| crontab | 0 0 1 1 * /path/to/script.sh |
|---|---|
| GitHub Actions | - cron: "0 0 1 1 *" (on.schedule) |
| Kubernetes CronJob | schedule: "0 0 1 1 *" |
crontab はサーバーのタイムゾーンで動作します。GitHub Actions は常に UTC を使います。
知っておきたいこと
0 0 1 1 * は年に 1 回、1 月 1 日の午前 0 時に実行され、@yearly や @annually と同じです。これほどまれなジョブはテストしにくく、忘れられがちです。次の 1 月までに、スクリプトや認証情報、サーバーそのものが変わっているかもしれません。登録後に一度手動で実行し、1 年と 1 日以内に成功した実行の報告がなければアラートを出す監視を追加しましょう。
サーバー時刻が業務上の年と一致するとは限りません。UTC のサーバーでは、中央ヨーロッパでは 01:00、ニューヨークでは 12 月 31 日の 19:00 に起動します。その時刻にマシンが停止していると cron は後から実行しませんが、anacron や Persistent=true を指定した systemd タイマーなら実行します。四半期ごとの実行には、0 0 1 1,4,7,10 * か、同等の 0 0 1 */3 * を使います。