レッスン 2
フィールドと構文
5 フィールド cron のワイルドカード、リスト、範囲、ステップ値。
cron を読むとは、左から右へ5 つの制約付き整数(またはワイルドカード)を読むことです。
フィールド順序と範囲
| フィールド | 許容値(典型的 Unix) |
|---|---|
| 分 | 0–59 |
| 時 | 0–23 |
| 日 | 1–31 |
| 月 | 1–12(一部パーサーで名前) |
| 曜日 | 0–7(0 と 7 はどちらも日曜のことが多い) |
覚え方:時の前に分、月の前に日、その後曜日。
一部システムは秒または年フィールドを追加します。このコースは特記なき限り一般的な 5 フィールド行に焦点を当てます。
ワイルドカード *
フィールドの * は「許容されるすべての値」を意味します。
* * * * *— 毎分(非常に攻撃的。本番で欲しいことは稀)0 * * * *— 毎時 0 分(正時)
リストと範囲
- リスト:分フィールドの
0,15,30,45— 1 時間に 4 回 - 範囲:曜日の
1-5— 月曜から金曜(0 vs 1 開始はプラットフォーム注記参照) - 組み合わせ:時の
9-17— 一致する各分で営業時間帯
ステップ構文 /
分フィールドの */5 は「0 から始まる 5 分ごと」:0, 5, 10, …
30-59/10 は分フィールドで 30, 40, 50 を意味します。
ステップは / の前の原子に適用されます。ステップの誤配置は一般的なパースエラーです。
日 vs 曜日
日と曜日の両方が制限されている(* でない)場合、Unix cron は通常 OR として扱い、AND ではありません。
0 0 1 * 1— 1 日の真夜中または月曜の真夜中(どちらかで発火)
「月の第 1 月曜」が必要なら、cron だけでは不便です。ラッパースクリプトやより豊富なスケジューラを使ってください。
無効な組み合わせ
2 月 31 日と分 60 は無効です。良いパーサーは早期に拒否します。サイレントなツールは空の next-run リストを出すことがあります。
要点
式をフィールドごとに構築します。まず分と時を固定し、日フィルタが DOM、DOW、または両方に属するかを決め、OR 意味論を理解した上で。本番 crontab にコミットする前にパーサーでテストしてください。
Cron Expression Parser でフィールド分解を確認してください。