Cron式ジェネレーター

ドロップダウンから分・時・日・月・曜日を選ぶだけでcrontabのスケジュールを作成 — わかりやすい日本語の説明文とよく使うプリセット付き。

696回閲覧

Cron式 * * * * *
わかりやすい説明

5つのフィールド

cron式は左から順に分・時・日(月内)・月・曜日の5つのフィールドで構成されます。*は「すべて」を意味し、*/15は「15単位ごと」、1,15は「リスト」、1-5は「範囲」を表します。たとえば0 9 * * 1-5は平日の9:00に、*/10 * * * *は10分ごとに、0 0 1 * *は毎月1日の0時に実行されます。

注意点:日(月内)と曜日の両方を指定した場合、この2つはOR条件として扱われます(多くの人を驚かせるポイントです)。曜日の0と7はどちらも日曜日を意味します。実行時刻はサーバーのタイムゾーンに従います。クラウドのスケジューラ(GitHub Actions、AWS、Kubernetes CronJobなど)も同じ5フィールドを使用しますが、一部拡張が加えられている場合があります。

よくある質問

30秒ごとに何かを実行するにはどうすればいいですか?

従来のcronの最小単位は1分です。よくある回避策は2行を用意することです。1行は通常通り、もう1行はコマンドの前に`sleep 30 &&`を付けたものにします。あるいは秒単位に対応したsystemdタイマーを使う方法もあります。

9:00に設定したジョブがおかしな時刻に実行されたのはなぜですか?

ほとんどの場合、原因はタイムゾーンです。crontabはサーバーのローカル時刻で動作します(クラウド環境ではUTCであることが多いです)。ホスト上で`date`コマンドを実行して確認するか、対応している場合はCRON_TZを設定してください。

式を安全にテストするにはどうすればいいですか?

まずログ出力用のコマンドに向けてテストしましょう:`* * * * * date >> /tmp/cron-test.log`。実行間隔を確認できたら、実際のコマンドに差し替えます。また、crontabを実行するユーザーに必要なPATHが通っているかも確認してください — cronの実行環境は最小限に限られています。

関連ツール