レッスン 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 でフィールド分解を確認してください。

実践したいときは関連する DevCove ツールを使えます。任意であり、このレッスンの必須部分ではありません。

関連ツールを開く

コース概要へ戻る