Cron式ジェネレーター
| フィールド | 値の範囲 |
|---|---|
| 分 | 0-59 |
| 時 | 0-23 |
| 日 | 1-31 |
| 月 | 1-12 |
| 曜日 | 0-7 |
*任意の値*/5N 単位ごと1-5範囲1,3,5複数の値1-5/2間隔| cron.col_field | cron.col_expr | cron.col_meaning |
|---|
LinuxのCron定期実行タスクをオンラインで生成・解析・検証
Cron式ジェネレーターは、Cron定期実行タスクの生成・解析・検証ができる無料オンラインツールです。Linux/Unixで一般的に使用される標準5フィールド形式に対応しています。分、時、日、月、曜日の各フィールドを設定してCron式を生成できるほか、既存の式を入力して構文や値の範囲を確認し、各フィールドの実行ルール、自然言語による説明、次回の実行時刻を確認できます。式の処理はブラウザー内で行われるため、ソフトウェアのインストールは不要です。開発者、システム管理者、サーバーの定期実行タスクを設定するユーザーに適しています。
Cron式ジェネレーターの主な機能
- ビジュアル生成:分、時、日、月、曜日の5つのフィールドを設定してCronの実行ルールを作成できます。
- よく使うプリセット:毎分、5分ごと、毎時、毎日、平日、毎月など、一般的なスケジュールを用意しています。
- クイック設定:フィールドのショートカットボタンから、すべての値、間隔、特定の分、平日、週末などをすばやく選択できます。
- リアルタイム生成:フィールドを変更すると、5フィールドのCron式が自動的に組み立てられ、更新されます。
- 構文検証:フィールド数、数値の範囲、式の形式、ステップ値が正しいかを確認し、エラーがあれば表示します。
- 式の解析:既存のCron式を入力すると、各フィールドの値と実行上の意味を解析できます。
- 自然言語による説明:一般的なCronルールを、理解しやすい実行スケジュールの説明に変換します。
- 実行時刻のプレビュー:ブラウザーのローカルタイムゾーンに基づいて、次回およびその後の複数回の実行時刻を推定します。
- 構文リファレンス:フィールドの範囲や、アスタリスク、ステップ、範囲、リストなどの一般的な構文を解説します。
- 式のコピー:生成または検証済みのCron式をワンクリックでコピーし、サーバー設定に貼り付けられます。
Cron式とは?
Cron式は、定期的なタスクの実行時刻を指定するためのルール形式です。Linux/UnixシステムのCrontab定期実行タスクで広く使用されています。システムは式に含まれる時間フィールドと現在時刻を照合し、スケジュール条件が満たされると指定されたコマンドやスクリプトを実行します。
このツールでは、Linux/Unixで一般的なCrontabの5フィールド形式を使用します。フィールドの順序は、分、時、日、月、曜日です。例えば、次の式です。
0 9 * * 1-5
この式は、月曜日から金曜日まで毎日午前9時にタスクを1回実行することを意味します。
Cron式の5つのフィールド
標準的な5フィールドCron式は、順番に並んだ5つのフィールドで構成され、各フィールドはスペースで区切られます。
1. 分(Minute)
指定可能な範囲は0-59です。各時間内の実行分を指定します。例えば、0は毎時0分に実行することを意味し、*/5は5分ごとに実行することを意味します。
2. 時(Hour)
指定可能な範囲は0-23で、24時間制を使用します。例えば、8は午前8時、18は午後6時を表します。
3. 日(Day of Month)
指定可能な範囲は1-31です。月内の日付を指定します。例えば、1は毎月1日、1-15は毎月1日から15日を表します。実際の実行時には存在しない日付は一致しません。例えば、2月には31日がありません。
4. 月(Month)
指定可能な範囲は1-12で、1月から12月に対応します。例えば、1は毎年1月、6,12は毎年6月と12月を表します。
5. 曜日(Day of Week)
指定可能な範囲は0-7です。一般的なLinux Cronでは、0と7はいずれも日曜日を表し、1から6は月曜日から土曜日を表します。例えば、1-5は月曜日から金曜日、0,6は日曜日と土曜日を表します。
Cron式でよく使われる構文
アスタリスク(*)
*は、そのフィールドで使用可能なすべての値を表します。例えば、分フィールドに*を指定すると、毎分そのフィールドの条件に一致します。
ステップ(*/N)
*/Nは、指定した間隔でフィールドの値を選択します。例えば、分フィールドの*/5は5分ごと、時フィールドの*/2は2時間ごとの実行を意味します。
範囲(A-B)
A-Bは、指定した範囲内のすべての値を表します。例えば、時フィールドの9-17は9時から17時までの時間帯を表します。
リスト(A,B,C)
A,B,Cは、複数の指定値を表します。例えば、時フィールドの8,12,18は、毎日8時、12時、18時に実行することを意味します。
範囲とステップ(A-B/N)
A-B/Nは、指定した範囲内でステップ値に従って値を選択します。例えば、分フィールドの0-30/10は、0分、10分、20分、30分に実行することを意味します。
開始値からのステップ(A/N)
A/Nは、指定した開始値からステップ値ずつ増加し、そのフィールドで許可される最大値まで選択します。例えば、分フィールドの5/10は、5分、15分、25分、35分、45分、55分に実行することを意味します。
Cron式の生成・解析例
毎分実行
* * * * *は、タスクを毎分実行することを意味します。
5分ごとに実行
*/5 * * * *は、毎時0分、5分、10分、15分などに実行することを意味します。
毎時実行
0 * * * *は、毎時0分に1回実行することを意味します。
毎日午前8時に実行
0 8 * * *は、毎日08:00に1回実行することを意味します。
平日の午前9時に実行
0 9 * * 1-5は、月曜日から金曜日まで毎日09:00に実行することを意味します。
毎週月曜日の午前9時に実行
0 9 * * 1は、毎週月曜日の09:00に実行することを意味します。
毎月1日の午前0時に実行
0 0 1 * *は、毎月1日の00:00に実行することを意味します。
毎日複数の時刻に実行
0 8,12,18 * * *は、毎日08:00、12:00、18:00に実行することを意味します。
Cronの日付と曜日の一致ルール
一般的なVixie Cronの仕様では、日フィールドと曜日フィールドの両方に制限値が指定されている場合、両方を同時に満たすAND条件ではなく、OR条件として扱われます。例えば、次の式です。
0 8 1 * 1
この式は、毎月1日の08:00、および毎週月曜日の08:00に実行することを意味します。月の1日が月曜日に当たる場合、その日は1つの一致として扱われます。両方の条件を満たしていても、タスクが2回実行されることはありません。
日フィールドまたは曜日フィールドのどちらかに*を使用すると、もう一方のフィールドの制限条件によって対象日が決まります。日付と曜日を同時に設定する場合は、解析結果の説明と実行時刻のプレビューで実際の結果を確認してください。
Cron式ジェネレーターの使い方
- ジェネレーターを開き、分、時、日、月、曜日の各フィールドを選択します。
- よく使うプリセットを選択するか、クイック設定ボタンで各フィールドをすばやく設定します。
- ツールがCron式を自動生成し、フィールドの形式と値の範囲を検証します。
- 式の説明を確認し、タスクの実行ルールが想定どおりであることを確認します。
- コピー按钮をクリックして、Linux Crontabまたは互換性のある定期実行設定に式を貼り付けます。
Cron式の解析と検証方法
- 解析ツールのタブに切り替えます。
- 確認したい5フィールドCron式を入力します。例:
0 9 * * 1-5。 - ツールがフィールド数、形式、値の範囲、ステップ設定を検証します。
- 式が有効な場合、5つの各フィールドの内容と具体的な意味を確認できます。
- 自然言語による説明と、次回およびその後の実行時刻を確認し、スケジュールが想定どおりか判断します。
フィールド数が正しくない場合、未対応の構文が含まれている場合、値が許可範囲を超えている場合、またはステップ値が不正な場合は、該当するエラーメッセージが表示されます。修正が必要なフィールドを特定するのに役立ちます。
Cronの次回実行時刻プレビュー
このツールでは、Cron式の次回およびその後の複数回の実行時刻をプレビューでき、スケジュールルールが想定どおりか確認できます。プレビューにはブラウザーのローカルな日付、時刻、タイムゾーンを使用します。式をサーバーに送信する必要はありません。
例えば、0 9 * * 1-5を入力すると、月曜日から金曜日の09:00というルールに一致する今後の実行時刻を確認できます。特定の日付、月、曜日を指定した式についても、複数回の実行時刻を確認してルールを検証できます。
実行時刻のプレビューはクライアント側での推定です。実際のタスク実行は、サーバーのタイムゾーン、システム時刻、夏時間、使用するCronスケジューラーの実装にも影響されます。サーバーに設定する前に、実際に使用するサーバーのCron環境を基準に確認してください。
Linux Crontabの使用例
Linuxでは、crontab -eを使用して現在のユーザーの定期実行タスク設定を編集できます。一般的な5フィールドCronタスクは、時間式と実行するコマンドで構成されます。例えば、次のようになります。
*/5 * * * * /usr/bin/php /var/www/html/task.phpこの例は、PHPスクリプトを5分ごとに実行することを意味します。実際に使用する際は、サーバー上のプログラムのパス、実行ユーザー、環境変数、権限設定に合わせてコマンドを調整してください。
Cron式の利用シーン
- LinuxおよびUnixシステムのCrontab定期実行タスク。
- サーバー上でのPHP、Python、Shellなどのスクリプトの定期実行。
- Webサイトのデータ更新と定期メンテナンス。
- データベースのバックアップと定期アーカイブ。
- ログや一時ファイルの削除、システムメンテナンス。
- データの定期同期、API呼び出し、自動化タスク。
- 定期レポートの生成とデータ処理。
- 開発環境における繰り返しタスクのスケジューリング。
Cron式を使用する際の注意事項
- 5フィールドのCron形式を使用していることを確認し、対象のスケジューラーがサポートする構文を確認してください。
- サーバーのシステム時刻とタイムゾーンが正しく設定されていることを確認してください。ブラウザーのタイムゾーンをサーバーのタイムゾーンと同じものとして扱わないでください。
- 日フィールドと曜日フィールドの両方に制限条件を設定する場合は、一般的なVixie CronのOR一致ルールに注意してください。
- 毎月29日、30日、31日などを指定する場合は、月ごとの実際の日数を考慮してください。
- ステップ、範囲、リストを使用する場合は、開始値、終了値、ステップ値が想定どおりか確認してください。
- 本番環境に導入する前に式を検証し、コマンドのパス、実行権限、実行環境を確認することをおすすめします。
対応範囲について
このツールは、Linux/Unixの標準的な5フィールドCrontab式を主にサポートしています。対象フィールドは分、時、日、月、曜日で、アスタリスク、ステップ、範囲、リストなどの構文に対応しています。曜日フィールドでは一般的な0-7の表記をサポートし、0と7はいずれも日曜日を表します。
Quartz、Springなどの6フィールドまたは7フィールドを使用するCron方言には対応していません。また、?、L、W、#などの拡張特殊文字もサポートしていません。Cronスケジューラーによって意味や動作が異なる場合があるため、使用前に対象環境の構文仕様を確認してください。
よくある質問
Cron式にはいくつのフィールドがありますか?
このツールがサポートする標準Cron式は5つのフィールドで構成されます。順番は分、時、日、月、曜日で、各フィールドはスペースで区切られます。
毎分実行するCron式は何ですか?
* * * * *は、タスクを毎分実行することを意味する一般的な5フィールドCron式です。
Cron式の*/5は何を意味しますか?
*/5は、5単位ごとにフィールドの値を選択することを意味します。例えば、分フィールドに指定すると5分ごとに実行されます。
Cron式の曜日0と7にはどのような違いがありますか?
一般的なLinux/Unix Cronでは、曜日フィールドの0と7はいずれも日曜日を表し、1から6は月曜日から土曜日を表します。
日と曜日を同時に設定した場合、ANDとORのどちらになりますか?
一般的なVixie Cronの仕様では、日フィールドと曜日フィールドの両方に具体的な制限を設定した場合、どちらか一方の条件を満たせばタスクが実行されます。つまりOR条件です。ただし、実際の動作は対象のCron実装に従って確認してください。
Cron式の検証に成功したのにタスクが実行されないのはなぜですか?
構文が正しいことは、タスクが必ず正常に実行されることを意味しません。サーバーのタイムゾーンとシステム時刻、Crontabサービスの状態、実行ユーザー、コマンドの絶対パス、ファイル権限、プログラムの実行環境も確認する必要があります。
このツールはQuartz Cronに対応していますか?
いいえ。このツールは主にLinux/Unix標準の5フィールドCrontab形式を対象としています。一般的なQuartz式は6フィールドまたは7フィールドを使用し、?、L、W、#などの拡張構文に対応しています。その場合はQuartz式専用のツールを使用してください。
次回実行時刻がサーバーの実際の実行時刻と異なる場合があるのはなぜですか?
このツールはブラウザーのローカルタイムゾーンに基づいてプレビューを計算しますが、サーバーでは異なるタイムゾーン、システム時刻、Cron実装が使用されている可能性があります。夏時間への切り替えやスケジューラー固有のルールも実際の実行時刻に影響します。そのため、本番環境ではサーバー側のスケジューラーの結果を基準にしてください。
まとめ
Cron式ジェネレーターは、定期実行ルールの生成、式の解析、構文検証、実行時刻のプレビューを1つにまとめたツールです。5フィールドの設定、よく使うプリセット、クイック設定、自然言語による説明により、Linux Crontabの定期実行タスクを簡単に作成・確認できます。サーバースクリプト、データベースのバックアップ、Webサイトのメンテナンス、自動化タスクのスケジューリングなどに活用できます。
Cron式の生成・解析ツール
- 分、時、日、月、曜日の5フィールドを設定可能
- よく使うCronプリセットとフィールドのクイック設定を提供
- Cron式を自動生成・検証し、フィールド数、形式、範囲、ステップ値を確認
- カスタム式を解析し、各フィールドの意味と自然言語による説明を表示
- 日と曜日のOR一致ルールについて説明
- 次回およびその後の複数回のタスク実行時刻をプレビュー
- ブラウザーのローカルタイムゾーンに基づいて実行時刻を推定
- Linux Crontab、サーバースクリプト、自動定期実行タスクに対応