Cron リファレンス:5フィールド、特殊文字、落とし穴
cron は5つのフィールドで記述されるスケジュールに従いコマンドを実行する。分、時、日、月、曜日の順であり、後にコマンド本体が続く。30 9 * * 1 のような1行は毎週月曜の午前9時半を意味する。ほぼすべての Unix 系システムと無数のスケジューラがこの方言を解する。
1. フィールドと許容値
分は 0 から 59、時は 0 から 23、日は 1 から 31、月は 1 から 12、曜日は 0 から 7 であり、0 と 7 はいずれも日曜を意味する。星印はその位置の全値を意味するため、0 * * * * は毎時ちょうどに発火する。
2. ステップ、範囲、リスト
スラッシュはステップを指定する。分フィールドの */15 は15分ごとを意味する。ハイフンは範囲を指定する。曜日 1-5 は月曜から金曜であり、カンマは 0,30 のようなリストを結合する。これらは自由に組み合わせられるため、0 9-17 * * 1-5 は平日の勤務時間帯に1時間ごとと読める。
3. 日付フィールドの OR の癖
日と曜日の両フィールドを制限すると、両方ではなくいずれかの一致で発火する。月の第1月曜を狙う行は注意を要する。両方を制限すると予定は狭まるのではなく広がるからである。片方を星印のままにすれば、もう片方が完全に主導権を握る。
4. プリセットと環境の罠
daily や weekly のような省略形はフィールドパターンに展開されるが、古典的な5フィールド形式がシステム間で最も移植性が高い。cron は最小限の環境で動くことを忘れてはならない。端末のパス、locale、shell の癖は引き継がれないため、絶対パスを常に使い、コマンドは手動で先にテストすべきである。our cron generator で式を視覚的に組み立て、次回実行時刻をプレビューできる。計算はすべてブラウザ内で行われる。