クイックパターン:
毎分 毎時 毎日深夜 平日午前9時 毎週日曜 毎月1日 15分ごと 毎日午前2時 金曜18:30

Cron式とは?

Cron式は、自動化されたタスク(cronジョブ)のスケジュールを定義する、スペースで区切られた5つのフィールドからなる文字列です。Unix/Linuxに由来し、現在ではクラウドスケジューラー(AWS EventBridge、GitHub Actions、Kubernetes CronJobs、Heroku Scheduler)やアプリケーションフレームワークで広く使用されています。

5つのフィールドは次を表します:(0〜59)、(0〜23)、(1〜31)、(1〜12)、曜日(0〜7、0と7はどちらも日曜日)。

Cron構文リファレンス

各フィールドは以下の特殊文字をサポートしています:

  • * — 任意の値(ワイルドカード)。例:* * * * * は毎分実行。
  • , — リスト区切り。例:時フィールドの 1,3,5 は午前1時、3時、5時を意味。
  • - — 範囲。例:曜日フィールドの 1-5 は月曜日から金曜日。
  • / — ステップ。例:分フィールドの */5 は5分ごと。

このツールの使い方

上の入力フィールドにCron式を入力または貼り付けてください。ツールが各フィールドを即座にわかりやすく説明し、完全な人間が読めるスケジュールを表示し、現在の日時に基づく次の5回の実行時間を表示します。クイックパターンボタンを使って一般的な式を挿入できます。

一般的なCron式の例

  • * * * * * — 毎分
  • 0 * * * * — 毎時0分
  • 0 0 * * * — 毎日深夜
  • 0 9 * * 1-5 — 平日の午前9:00
  • 0 0 1 * * — 毎月1日の深夜
  • */15 * * * * — 15分ごと
  • 0 2 * * 0 — 毎週日曜日の午前2:00(週次バックアップによく使用)
  • 0 8,12,17 * * 1-5 — 平日に1日3回(8時、12時、17時)

Cronに関するよくある質問

cronの '* * * * *' はどういう意味ですか?

* * * * * は「毎日毎時間毎分実行する」を意味します。各アスタリスクは、そのフィールドのすべての有効な値に一致するワイルドカードです:分(0〜59)、時(0〜23)、日(1〜31)、月(1〜12)、曜日(0〜7)。最も許容的なCron式であり、頻繁に実行する必要のあるタスクに一般的に使用されます。

5分ごとにcronジョブを実行するにはどうすればいいですか?

スラッシュを使ったステップ構文を使用します:*/5 * * * */ は「Nごと」を意味するため、分フィールドの */5 は5分ごと — :00、:05、:10、:15、と続きます。15分ごとの場合は */15 * * * * を使用。毎時0分と30分のように特定の分を指定する場合は、0,30 * * * *(カンマ区切りリスト)を使用します。

cronの曜日フィールドで0と7の違いは何ですか?

0と7はどちらも日曜日を表します。従来のUnixの慣例では0が日曜日、6が土曜日ですが、多くのcron実装では互換性のために7も日曜日として受け付けます。1〜5は月曜日から金曜日、6は土曜日です。平日のみにスケジュールするには、曜日フィールドで 1-5 を使用します:0 9 * * 1-5 は月曜日から金曜日の午前9時に実行されます。

cronは秒単位のスケジューリングをサポートしていますか?

標準的なUnix cronは分未満のスケジューリングをサポートしていません — 最小単位は1分です。秒単位の精度が必要な場合は、systemd timers(Linux)、タスクスケジューラ(Windows)、またはnode-cron、APScheduler(Python)、Quartz(Java)などのアプリケーションレベルのスケジューラーの使用を検討してください。これらは秒を含む6フィールドの式をサポートしています。

関連開発者ツール