サーバーの定期処理や自動スクリプトの実行などで使われる Cron の基本構文から具体的な使用例、よくある誤解までを丁寧に解説します。日常的な運用で役立つ実用例も併せて紹介していますので、ぜひ参考にしてください。
基本構文
Cron は以下のように 5 つのフィールドで構成されます。それぞれの位置には「いつ・何を実行するか」を表す情報を記述します。未指定の不要項目は*
アスタリスクで埋めます。
分
時
日
月
曜日
コマンド
たとえば、次のように書くと毎日 2 時 5 分に script.sh 実行されます。
5 2 * * * /script.sh
フィールドの意味と使用例
毎時〇分に実行
5 * * * *
設定例:毎時 5 分
指定値:0 〜 59 分
毎日〇時に実行
0 14 * * *
設定例:毎日 14 時
指定値:0 〜 23 時
毎月〇日〇時に実行
0 0 1 * *
設定例:毎月 1 日 0 時
指定値:0 〜 23 時
毎年〇月に実行
0 0 * 5 *
設定例:毎年 5 月
指定値:1 〜 12 月
毎週〇曜日に実行
0 0 * * 1
設定例:毎週月曜(0 と 7 は日曜)
指定値:0 〜 7(0 または 7=日曜)
特殊な書き方と意味
毎分実行
* * * * *
記号:*
(すべての値を意味する)
例:毎分実行
〇分おきに実行
*/15 * * * *
記号:*/N
(N 単位で実行)
例:15 分ごとに実行
複数の時間に実行
0 9,12,15 * * *
記号:A,B,C
(複数値の指定)
例:9 時・ 12 時・ 15 時に実行
時間の範囲指定で実行
0 9-17 * * *
記号:A-B
(範囲指定)
例:9 時〜 17 時まで毎時実行
範囲内で N 間隔に実行
0 0-23/2 * * *
記号:A-B/N
(範囲内で N 間隔)
例:2 時間ごとに実行
*/12 の誤解に注意
0 */12 * * *
これは「 12 時間ごと」ではなく、「 0 時と 12 時」の 2 回だけ実行されます。
実際に 12 時間ごとに実行
0 6,18 * * * /script.sh
Cron には「前回実行から〇時間後」という概念はありません。たとえば 6 時と 18 時に明示的に指定する必要があります。
実例集
毎日 0 時に実行
0 0 * * *
設定例:毎日 0 時に実行
毎日 2 時 5 分に実行
5 2 * * *
設定例:毎日 2 時 5 分に実行
1 時間おきに実行
0 */1 * * *
設定例:1 時間おきに実行
2 時間おきに実行
0 */2 * * *
設定例:2 時間おきに実行
0 時と 12 時に実行(12 時間おきではない)
0 */12 * * *
設定例:0 時と 12 時の 2 回のみ実行
毎日 6 時と 18 時に実行(明示的に 12 時間間隔)
0 6,18 * * *
設定例:毎日 6 時と 18 時に実行
平日(月〜金)9 時に実行
0 9 * * 1-5
設定例:月〜金の平日 9 時に実行
Cron の設定方法
Cron の実行タイミングはcrontab
という設定ファイルに記述します。設定を編集するには以下のコマンドを使用します:
crontab -e
このコマンドで権限ユーザーごとの crontab ファイルが開きます。 root で実行すれば root の設定になります。
そこにスケジュールとコマンドを記述することで、自動実行が設定されます。設定後は自動的に反映され、特別な保存操作や再起動は不要です。
現在の設定を確認したい場合は次のコマンドを使用します。
crontab -l
Cron は正しく使えば非常に強力な自動化ツールです。専用サーバーはもちろん、 Xserver のような共有ホスティングでも、ここで紹介した実用例の多くが実行可能です。自身の用途に応じたスケジュールを設定し、効率的な運用にぜひ役立ててください。
WordPress における Cron の理解にはこちらの記事をおすすめします。
この記事が役に立ったら「いいね」!