Cron式ジェネレーター

スケジュールタスクを設定するためのビジュアルCron式ジェネレーター。分、時、日、月、週の時間単位設定をサポートし、標準Cron式を自動生成します。

Cron式ビルダー

から ステップ
から まで

生成結果

既存の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. 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参考ドキュメント[4]Cronieプロジェクト Wiki[3]によると、以下の記号が広くサポートされています:

記号 説明 公式ドキュメント例
L 月の最終日(一部の実装でのみサポート) 0 0 L * * = 毎月最終日に実行[5]
W 最寄りの平日(例:15W は15日に最も近い平日を表す) Quartz Scheduler ドキュメント[6]を参照(Javaエコシステムで一般的、一部のcronと互換)

三、定義済みエイリアス(@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 公式サイト

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

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

  2. Cron式ジェネレーター

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


六、まとめ

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


参考資料

[1] POSIX Standard: Cron定義
[2] Linux man 5 crontab マニュアルページ
[3] Cronie公式ドキュメント: GitHub Wiki
[4] IBM Cron参考: Cronフォーマット説明
[5] Quartz Cron構文: Quartz Scheduler Docs
[6] Vixie cron履歴: Vixie cron Wiki
[7] Debian cronマニュアル: Debian CronHowto
[8] systemd.timerマニュアル: systemd公式ドキュメント