Cron 式ジェネレーター
次回実行時刻
Cron 式の説明
Cron 式のフォーマット
一、Cron 式の基本構造(権威ある出典付き)
標準的な Cron 式は 5つの時間フィールドと 1つのコマンドフィールドで構成され、Unix および Linux システムの一般的な規約に従います。IEEE Std 1003.1-2017(POSIX 標準)1 と Linux man 5 crontab
ドキュメント2 によると、その形式は以下の通りです:
* * * * * command-to-execute
│ │ │ │ │
│ │ │ │ └── 曜日 (0-7、0と7は日曜日)
│ │ │ └──── 月 (1-12)
│ │ └────── 日 (1-31)
│ └──────── 時 (0-23)
└────────── 分 (0-59)
権威ある説明:
二、時間フィールドの記号規則
各時間フィールドは以下の特殊記号をサポートしています:
記号 | 説明 | 例 |
---|---|---|
* | 任意の値 | * を分フィールドで使用 = 毎分 |
, | 複数の値を指定 | 1,3,5 = 1,3,5分 |
- | 範囲を定義 | 10-15 = 10から15分 |
/ | ステップ(間隔周期) | */5 を分フィールドで使用 = 5分おき |
? | 日付と曜日フィールドのみで使用、「指定なし」を表す | 競合を避けるために使用 |
現代の Cron 実装(Vixie cron とその派生版)は、より豊富な構文規則をサポートしています。IBM Cron リファレンスドキュメント4 と Cronie プロジェクト Wiki3 によると、以下の記号が広くサポートされています:
記号 | 説明 | 公式ドキュメントの例 |
---|---|---|
L | 月の最終日(一部の実装のみサポート) | 0 0 L * * = 毎月最終日に実行5 |
W | 最も近い平日(例:15W は15日に最も近い平日) | Quartz Scheduler ドキュメント6を参照(Java エコシステムで一般的) |
三、定義済みエイリアス(@daily など)の由来
@daily
、@weekly
などのエイリアスは、Paul Vixie が開発した Cron 実装(1987年にリリースされた Vixie cron)7に由来し、現代の Linux ディストリビューション(Debian、Red Hat など)でデフォルトでサポートされています。Debian cron
マニュアル8によると:
# 0 0 * * * と同等
@daily /path/to/script
四、一般的な実装の違いと注意点
異なる Cron 実装には微妙な違いがあり、対応するドキュメントを参照する必要があります:
実装名 | 特徴 | 公式リソースリンク |
---|---|---|
Cronie | Red Hat 系のデフォルト cron、@ ショートカットをサポート | Cronie GitHub |
systemd | .timer ユニットで cron を代替(新システムで推奨) | systemd.timer マニュアル |
fcron | より複雑な構文をサポート(@yearly など) | fcron 公式サイト |
五、推奨される検証ツールと権威ある参考資料
-
Crontab マニュアルページ
ターミナルでman 5 crontab
を実行して完全な構文を確認できます。これが最も直接的なローカルの権威ある参考資料です。 -
Cron 式ジェネレーター
- IBM Cron ドキュメント4(エンタープライズレベルのユースケース)
-
オープンソースプロジェクトドキュメント
六、まとめ
POSIX 標準、Linux マニュアルページ、主要な実装(Cronie など)のドキュメントを組み合わせることで、Cron 式のコア論理を正確に理解できます。高度な使用法(L
や W
など)については、異なる実装の互換性に注意し、公式リソースを優先的に参照してください。
Footnotes
-
Linux
man 5 crontab
マニュアルページ ↩ -
Cronie 公式ドキュメント: GitHub Wiki ↩ ↩2
-
IBM Cron リファレンス: Cron 形式の説明 ↩ ↩2
-
Quartz Cron 構文: Quartz Scheduler Docs ↩
-
Vixie cron 歴史: Vixie cron Wiki ↩
-
Debian cron マニュアル: Debian CronHowto ↩
-
systemd.timer マニュアル: systemd 公式ドキュメント ↩
-
Ubuntu Cron ガイド: Ubuntu Cron コミュニティドキュメント ↩