cron式の書き方入門|5フィールドと記号を図解で理解する
公開日:2026年10月7日 更新日:2026年9月15日 運営:シルギア(Analyzegear, Inc.) 対象ツール:cron式ビルダー
サーバーで「毎日決まった時刻にバックアップ」「平日の朝だけメール送信」といった定型処理を自動化するとき、その予定を1行で表したものがcron式(クーロン式)です。慣れれば強力ですが、記号が多く、曜日の数え方や特殊な条件判定でつまずきやすい部分もあります。この記事では、シルギアの「cron式ビルダー」で組み立てながら、cron式の読み書きを基礎から整理します。
cron式は5つのフィールドでできている
標準的なcron式は、左から順に「分・時・日・月・曜日」の5つのフィールドを半角スペースで区切って並べたものです。それぞれの取り得る値は決まっていて、分=0〜59、時=0〜23、日=1〜31、月=1〜12、曜日=0〜7です。この5つの条件がすべて同時に一致した瞬間にジョブが動く、というのが基本の考え方です。
たとえば「0 9 * * *」なら、分=0・時=9で、日と月と曜日は問わない(*)ため、毎日9:00ちょうどに実行される、という読み方になります。なお、秒を指定するフィールドは標準のcronにはありません。1分より細かい周期は基本的に扱えないと考えておくと安全です。
4つの記号(* / , -)の使い分け
各フィールドには、次の4通りの書き方があります。ツールの「毎/間隔/指定/範囲」というモード切り替えは、この4つにそのまま対応しています。
- *(アスタリスク)…そのフィールドの全ての値。つまり「毎回」を表します。時を*にすれば毎時が対象です。
- */N(スラッシュ)…Nおきの意味。分の「*/5」は5分ごと、時の「*/6」は6時間ごとになります。
- a-b(ハイフン)…aからbまでの連続した範囲。曜日の「1-5」は月〜金です。
- a,b,c(カンマ)…複数の値を個別に列挙します。分の「0,30」は0分と30分の2回です。
これらは組み合わせても使えます。「0,30」で毎時0分と30分、「*/15」で15分ごと、といった具合に、周期と時刻を細かく設計できます。
曜日は0〜7、0と7が日曜
初見で戸惑いやすいのが曜日の数字です。0=日曜、1=月曜、2=火曜、3=水曜、4=木曜、5=金曜、6=土曜と対応します。ここで特徴的なのは、日曜だけは0と7のどちらでも表せる点です。7は歴史的な互換のための別名で、「毎週日曜」は 0 でも 7 でも同じ意味になります。本ツールも7を日曜として扱うので、「0 3 * * 7」は日曜3:00と正しく解釈されます。土日をまとめて指定したいときは「0,6」、平日なら「1-5」と書きます。
代表的な例を読み解いてみる
実際の式を、フィールドごとに分解して読む練習をしてみましょう。
- 0 9 * * 1-5…分=0、時=9、曜日=月〜金。日と月は問わないので「平日の9:00」です。
- */15 * * * *…分だけ15分おき、あとは全て*。つまり「15分ごと」に一日中実行します。
- 0 0 15 * *…分=0、時=0、日=15。「毎月15日の0:00」に一度だけ動きます。
- 0 */6 * * *…分=0で時が6時間おきなので、0時・6時・12時・18時の「6時間ごと」です。
このようにフィールドを1つずつ日本語に置き換えると、複雑に見える式も落ち着いて読めます。ツールでは組み立てた式の日本語説明と、端末の時刻を基準にした直近5回の実行予定が同時に表示されるので、意図どおりかを目で確認できます。
日と曜日を両方書くとORになる落とし穴
最も間違えやすいのが、日(日付)と曜日をどちらも「*以外」に指定したときの挙動です。直感的には「両方に一致した日だけ(AND)」と考えがちですが、多くのcron実装では『どちらか一方に一致すれば実行』というOR条件で判定されます。
たとえば「0 0 1 * 1」は、毎月1日かつ月曜ではなく、毎月1日、または毎週月曜に実行されます。これは意図とずれやすい代表的な落とし穴です。回避のコツは、日と曜日の片方だけを指定し、もう片方は必ず*にしておくこと。本ツールでは両方を指定したときに注記を出し、直近の実行予定にもOR条件を反映して表示するので、思わぬ実行増を事前に気づけます。
よくある間違いと使いどころ
周期指定でありがちな誤りが、5分ごとのつもりで「5 * * * *」と書いてしまう例です。これは分=5固定なので「毎時5分の1回だけ」になり、正しくは「*/5 * * * *」です。また分を*のままにすると毎分実行になり負荷が高くなるため、周期処理では必ず分を絞りましょう。cron式が意味する時刻はサーバー側のタイムゾーンで動く点にも注意が必要です。ツールの実行予定はあくまで手元の端末時刻を基準にした目安なので、本番とは数時間ずれることがあります。
使いどころは、バックアップ、ログ集計、定期メール送信、キャッシュ削除など、時刻や周期が決まった定型作業の自動化です。まずはプリセットで近い形を選び、フィールド単位で微調整してから、生成された式をそのままcrontabやジョブ設定に貼り付けると、手打ちのミスを減らせます。