次において実施00:00、月の 1 日目

0 0 1 * *

フィールド

分00
時00
日11
月*任意
曜日*任意

使える場所

crontab0 0 1 * * /path/to/script.sh
GitHub Actions- cron: "0 0 1 * *" (on.schedule)
Kubernetes CronJobschedule: "0 0 1 * *"

crontab はサーバーのタイムゾーンで動作します。GitHub Actions は常に UTC を使います。

知っておきたいこと

0 0 1 * * は毎月 1 日の午前 0 時に実行され、@monthly と同じです。課金処理、請求書、月次レポートはたいていここで動くので、どのタイムゾーンの「1 日」なのかを決めておきましょう。UTC のサーバーで 1 日になっても、南北アメリカではまだ前月の末日です。前月分のレポートは、30 日や 31 日を決め打ちせず、実行日から日付の範囲を計算してください。

Vixie cron と cronie には月末を表す構文がありません。0 0 28-31 * * で実行し、コマンド内で判定してください。たとえば test $(date -d tomorrow +\%d) = 01 && /path/to/script.sh のようにします。Quartz や一部のクラウドスケジューラーは代わりに L をサポートしています。OR ルールに注意してください。0 0 1 * 1 は、1 日が月曜日のときではなく、毎月 1 日と毎週月曜日に実行されます。

cron 式の作成・解説ツールを開く