Cron 式ジェネレーター

から間隔
からまで
* * * * *

次回実行時刻

Cron 式の説明

Cron 式のフォーマット

一、Cron 式の基本構造(権威ある出典付き)


標準的な Cron 式は 5つの時間フィールド1つのコマンドフィールドで構成され、Unix および Linux システムの一般的な規約に従います。IEEE Std 1003.1-2017(POSIX 標準)1Linux man 5 crontab ドキュメント2 によると、その形式は以下の通りです:

* * * * * command-to-execute
│ │ │ │ │
│ │ │ │ └── 曜日 (0-7、0と7は日曜日)
│ │ │ └──── 月 (1-12)
│ │ └────── 日 (1-31)
│ └──────── 時 (0-23)
└────────── 分 (0-59)

権威ある説明

  1. POSIX 標準1 は Cron の最小互換性規格を定義し、*,- 記号のサポートを要求しています。
  2. Linux システムの cron 実装(Cronie など)は、ステップ値 (/) や特殊文字列(@daily など)などの追加機能を提供しています。詳細は公式ドキュメント3を参照してください。

二、時間フィールドの記号規則

各時間フィールドは以下の特殊記号をサポートしています:

記号説明
*任意の値* を分フィールドで使用 = 毎分
,複数の値を指定1,3,5 = 1,3,5分
-範囲を定義10-15 = 10から15分
/ステップ(間隔周期)*/5 を分フィールドで使用 = 5分おき
?日付と曜日フィールドのみで使用、「指定なし」を表す競合を避けるために使用

現代の Cron 実装(Vixie cron とその派生版)は、より豊富な構文規則をサポートしています。IBM Cron リファレンスドキュメント4Cronie プロジェクト 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 実装には微妙な違いがあり、対応するドキュメントを参照する必要があります:

実装名特徴公式リソースリンク
CronieRed Hat 系のデフォルト cron、@ ショートカットをサポートCronie GitHub
systemd.timer ユニットで cron を代替(新システムで推奨)systemd.timer マニュアル
fcronより複雑な構文をサポート(@yearly など)fcron 公式サイト

五、推奨される検証ツールと権威ある参考資料

  1. Crontab マニュアルページ
    ターミナルで man 5 crontab を実行して完全な構文を確認できます。これが最も直接的なローカルの権威ある参考資料です。

  2. Cron 式ジェネレーター

  3. オープンソースプロジェクトドキュメント


六、まとめ

POSIX 標準、Linux マニュアルページ、主要な実装(Cronie など)のドキュメントを組み合わせることで、Cron 式のコア論理を正確に理解できます。高度な使用法(LW など)については、異なる実装の互換性に注意し、公式リソースを優先的に参照してください。


Footnotes

  1. POSIX 標準: Cron 定義 2

  2. Linux man 5 crontab マニュアルページ

  3. Cronie 公式ドキュメント: GitHub Wiki 2

  4. IBM Cron リファレンス: Cron 形式の説明 2

  5. Quartz Cron 構文: Quartz Scheduler Docs

  6. Vixie cron 歴史: Vixie cron Wiki

  7. Debian cron マニュアル: Debian CronHowto

  8. systemd.timer マニュアル: systemd 公式ドキュメント

  9. Ubuntu Cron ガイド: Ubuntu Cron コミュニティドキュメント