Cron式パーサー
Cron式を解析して実行スケジュールを人間が読める形式で表示します。よく使われるCron例と各フィールドの説明付きの無料ツールです。
よく使われる例
フィールドリファレンス
| minute | hour | day | month | weekday |
|---|---|---|---|---|
| 0-59 | 0-23 | 1-31 | 1-12 | 0-6 |
Cron式パーサーとは?
Cron式パーサーは、Unix/Linuxでタスクのスケジューリングに使用されるcronスケジュール構文を、誰でも理解できる平易な説明に変換します。「0 9 * * 1」のようなcron式を入力すると、即座に「毎週月曜日の09:00」と表示されます。一般的なcronの例やフィールドリファレンスガイドも提供しており、cron構文の学習と複雑なスケジュールの検証の両方に役立ちます。
Cron式パーサーの使い方
- 5つのフィールド(分、時、日、月、曜日)のcron式を入力します。
- 「Cronを解析」ボタンをクリックして、スケジュールの人間が読める説明を確認します。
- 「よく使われる例」セクションを閲覧して、クリックして読み込める頻繁に使用されるcronパターンを見つけます。
- フィールドリファレンステーブルを参照して、各フィールドの有効な範囲と特殊文字を理解します。
- 式を変更して再解析し、異なるスケジュール設定を試します。
ヒントとベストプラクティス
フィールドの順序を理解する
5つのcronフィールドは常に同じ順序です:分(0-59)、時(0-23)、日(1-31)、月(1-12)、曜日(0-7、0と7の両方が日曜日)。この順序を覚えることは、cron式を正しく読み書きするために不可欠です。
間隔にはステップ値を使用
スラッシュ(/)演算子はステップ値を作成します。例えば、分フィールドの*/5は5分ごとを意味し、1-30/2は1から30までの2分ごとを意味します。カンマで個別の値をリストするよりもクリーンでエラーが発生しにくいです。
デプロイ前にテスト
crontabやCI/CDパイプラインに追加する前に、必ずcron式を解析して確認してください。構文の小さな間違いで、ジョブが1日1回ではなく毎分実行される可能性があり、システムの過負荷や数千の重複メールの送信につながる恐れがあります。
cronジョブをドキュメント化
crontabの各cronエントリの上に、ジョブが何をするか、いつ実行されるかを平易な言葉で説明するコメントを追加してください。このパーサーを使用して人間が読める説明を生成し、コメントとして貼り付けます。これにより、チームの他のメンバーがスケジュールを一目で理解できます。
一般的な使用例
サーバー管理
ログローテーション、データベースバックアップ、SSL証明書の更新、ディスククリーンアップスクリプトなど、自動化されたサーバーメンテナンスタスクのcronスケジュールを確認します。式を平易な言葉に解析することで、ジョブが意図した時間と頻度で実行されることを保証します。
CI/CDパイプラインのスケジューリング
GitHub Actions、GitLab CI、Jenkinsなどのci/CDプラットフォームでスケジュールされたビルド、デプロイ、テスト実行を設定します。これらのプラットフォームはスケジューリングにcron構文を使用しており、式を解析することで夜間ビルドや週次デプロイが正しくタイミングされていることを確認できます。
監視とアラートの設定
cronスケジュールを使用して、スケジュールされたヘルスチェック、稼働時間監視、アラートダイジェストメールを設定します。式を解析して、監視が問題を素早くキャッチするのに十分な頻度で実行されつつ、頻度が高すぎてノイズが過剰にならないことを確認します。
FAQ
Cron式の各フィールドの意味は何ですか?
Cron式は5つのフィールドで構成される文字列で、Unix系システムにおける自動タスクのスケジュールを定義します:分、時、日、月、曜日。
どの特殊文字がサポートされていますか?
アスタリスク(*)は任意の値、カンマ(,)はリスト、ハイフン(-)は範囲、スラッシュ(/)は間隔です。
5フィールドと6フィールドのcron式の違いは何ですか?
標準的なUnix cronは5フィールド(分から曜日まで)を使用します。Quartz Schedulerなどの一部のシステムは、先頭に秒のための6番目のフィールドを追加し、年のための7番目のフィールドをサポートするものもあります。このツールはcrontab、GitHub Actions、ほとんどのLinuxシステムで使用される標準的な5フィールド形式をサポートしています。
毎月最終日にジョブを実行するようにスケジュールするにはどうすればよいですか?
標準的なcronには組み込みの「月の最終日」キーワードがありません。一般的な回避策は、翌日が1日かどうかをチェックするスクリプトを使用することです:0 0 28-31 * * [ $(date -d tomorrow +\%d) -eq 1 ] && your_command。Quartzなどの拡張cron実装では、この目的でL文字をサポートしています。
数字の代わりに曜日名や月名を使用できますか?
多くのcron実装は、数字の代わりに3文字の略語(曜日ではSUN、MON、TUEなど、月ではJAN、FEB、MARなど)を受け入れます。ただし、このツールはすべてのcron実装との最大限の互換性のために数値を期待しています。フィールドリファレンスを使用して正しい数値を確認してください。