定期実行の設定を、確実に

cron式生成ツール

「5分おき」「毎日深夜」「毎週月曜日」をcrontabの設定に。5つの項目を選んでcron式を作成し、次の実行日時まで確認できます。既存の式のチェックにも使えます。

CRON式Linux標準・5項目
*/5
*
*
*
*曜日

5分おき / UTC

01

実行条件を設定

変更をすぐに反映
間隔
すべて *
すべて *
すべて *
すべて *

間隔は項目ごとに繰り返します。日と曜日を両方指定すると、いずれかに一致する日に実行されます。

計算はブラウザ内で完結します。登録不要・データ送信なし。

よく使うcrontabの設定例

*/5 * * * *

毎時0分から5分おき

0 3 * * *

毎日3時

0 9 * * 1

毎週月曜日の9時

cronの設定は「いつ」と「何を」を分けて考える

cronは決まった日時にコマンドを実行する仕組みです。ユーザーのcrontabでは、行の先頭に5項目の実行条件を書き、その後ろにコマンドを続けます。式だけをコピーしても、サーバーに処理が登録されるわけではありません。

ログの整理やバックアップなど、毎回同じ処理を行う運用に向いています。まず実行時刻を決め、式の値と次回実行日時を照らし合わせてください。日時の指定ミスと、スクリプトそのものの不具合を切り分けやすくなります。

毎日・毎週のスケジュールを作成する

  1. 設定例を選び、必要な項目だけ変更します。
  2. 複数の時刻を指定する場合は「範囲・リスト」を選びます。
  3. 既存のcrontabを確認するときは、コマンド部分を除いた5項目を直接入力します。
  4. UTCで表示される次の実行日時を確認し、式をコピーします。

cron式の読み方:分・時・日・月・曜日

項目は半角スペースで区切ります。日曜日は0または7です。月はJAN〜DEC、曜日はSUN〜SATでも指定できます。日本語の曜日名や全角数字は式の中では使用しません。

項目範囲
059
023
131
112
曜日07
  • *:その項目のすべての値
  • カンマ:複数の値を列挙(0,30)
  • ハイフン:両端を含む範囲(1-5)
  • スラッシュ:範囲内の間隔(*/15

そのまま確認できるcron式の例

「月〜金」は祝日判定ではありません。祝日を除外したい場合は、実行する処理の側で別途判定が必要です。

cron式実行タイミング
*/5 * * * *毎時0分から5分おき
0 3 * * *毎日3時
0 9 * * 1毎週月曜日の9時
0 9 * * 1-5月曜日から金曜日の9時
0 0 1 * *毎月1日の0時
0 0 29 2 *うるう年の2月29日0時

crontab -eでサーバーに登録する

crontab -eで現在のユーザーの設定を開きます。次の例では、毎日2時30分にバックアップ用スクリプトを起動します。時刻の解釈はサーバー側の設定に従います。

コマンドには絶対パスを使い、実行権限やcronサービスの稼働状況も確認してください。ターミナルから実行できても、cronの実行環境では環境変数などが異なることがあります。

30 2 * * * /usr/local/bin/backup.sh

cron設定で迷いやすいポイント

日本時間で表示されますか?

実行日時のプレビューはUTC固定です。cron式自体にタイムゾーンは含まれません。日本時間で運用する場合は、スケジューラー側のタイムゾーンと照合してください。

5分おきは登録した時刻から数えますか?

いいえ。分の*/5は毎時0、5、10、15分などに一致します。登録時刻を起点にした経過時間の指定ではありません。

日と曜日を両方指定するとどうなりますか?

両方が制限されている場合はいずれかに一致すれば実行されます。0 9 1 * MONは毎月1日と毎週月曜日の9時です。どちらかが*で始まる場合は、両方の日付条件を満たす必要があります。

秒付きの式やQuartzにも対応していますか?

Linux標準の5項目のみ対応します。秒、?、L、W、#、@rebootは使用できません。@hourly@daily@weekly@monthly@yearlyは5項目に展開できます。

実行日時が5件出ないのはなぜですか?

探索範囲は今後8年間です。2月31日のような存在しない日付には一致せず、うるう日の指定では件数が少なくなります。

Cronieのcrontab仕様(英語)