0 * * * *フィールド
| 分 | 0 | 0 |
|---|---|---|
| 時 | * | 任意 |
| 日 | * | 任意 |
| 月 | * | 任意 |
| 曜日 | * | 任意 |
使える場所
| crontab | 0 * * * * /path/to/script.sh |
|---|---|
| GitHub Actions | - cron: "0 * * * *" (on.schedule) |
| Kubernetes CronJob | schedule: "0 * * * *" |
crontab はサーバーのタイムゾーンで動作します。GitHub Actions は常に UTC を使います。
知っておきたいこと
0 * * * * は毎時 0 分(正時)に実行され、@hourly と同じです。よくある間違いは 0 を時のフィールドに書いてしまうことで、* 0 * * * は 00:00 から 00:59 まで毎分実行されます。Debian や Ubuntu では、/etc/cron.hourly 内のスクリプトも run-parts によって毎時 17 分に実行されるので、正確な分を気にしないジョブに向いています。2 時間ごとは 0 */2 * * * です。
0 分はどのスケジューラーにとっても最も混み合う時刻なので、共有サービスを呼び出すジョブには 23 * * * * のように別の分を選びましょう。GitHub Actions は、毎時の開始時刻の実行は負荷が高いと遅延したり、破棄されたりすることがよくあると警告しています。1 回の実行が 1 時間を超える可能性があるなら flock -n で包み、失敗の痕跡が残るよう出力をログに追記してください。