Linuxのcrontabコマンドは、プログラムを指定した日時に自動実行するためのデーモンcrondの設定を行うコマンドです。
設定はユーザーごとに用意されたcrontabという設定ファイルに記述されます。
crontabコマンドの使い方
crontabコマンドの構文は以下の通りです。
1 |
$ crontab オプション |
オプション
-e | 環境変数EDITORで指定されているエディタを起動する |
-l | 登録されているcrontabを表示する |
-r | 登録されているcrontabを削除する |
-u ユーザー | 指定ユーザーのcron設定を行う |
crontabの構文
定期実行の構文は以下の通りです。
1 2 |
# コメント 分 時 日 月 曜日 コマンド |
分 | 分(0-59)、またはワイルドカード「*」を指定する |
時 | 時(0-23)、またはワイルドカード「*」を指定する |
日 | 日(1-31)、またはワイルドカード「*」を指定する |
月 | 月(1-12)、「jan~dec」またはワイルドカード「*」を指定する |
曜日 | 曜日(0-7)、「sun~sat」またはワイルドカード「*」を指定する(0は日曜) |
コマンド | 実行するコマンドまたはスクリプトを記述する |
crontabを編集する
crontabを編集するには、オプション「-e」を指定します。
1 |
$ crontab -e |
基本的にはこのコマンドを使用してエディタを開き、自動実行の設定を記述していきます。複数の自動実行を指定したい場合は、別の行に追加してください。
自動実行の指定方法
たとえば、1時間ごと(毎時0分)に処理を実行したい場合は以下のように設定します。
1 2 |
# 1時間ごとにcommandを実行 0 * * * * command |
この場合、0:00, 1:00, 2:00 ... のように1時間ごとにコマンドが実行されます。
また、毎月1日の4:30に処理を実行したい場合は以下のように設定します。
1 2 |
# 毎月1日の4:30に処理を実行 30 4 1 * * command。 |
時間を範囲指定する
数値は範囲を指定することもできます。範囲は二つの数をハイフンでつなげます。たとえば「時」に 「8-11」 を指定すると、 8時, 9時, 10時, 11時に処理が実行されます。また「曜日」に 「1-5」 を指定すると、 月曜日から金曜日までを意味します。
1 2 |
# 月曜日から金曜日の間 8:00, 9:00, 10:00, 11:00 にcommandを実行 0 8-11 * * 1-5 command |
時間を複数指定する
時間はリスト形式で複数指定することもできます。リストはコンマで区切られた数値のセットで、「1,2,5,9」「0-4,8-12」のように記述します。
たとえば「分」に 「10,20,30」 を指定すると、 10分, 20分, 30分 に実行されます。
1 2 |
# 毎日、毎時、10分,20分,30分 にcommandを実行 10,20,30 * * * * command |
「月」や「曜日」には名前を使用することもできます。その日または月の最初の3文字を用います。ただし、上記の「範囲」や「リスト」を名前に対して用いることはできないので注意してください。
時間を一定間隔で指定する
時間を間隔で指定することもできます。「時間/間隔」と指定すると、指定した間隔おきに処理が実行されます。
2時間おきに処理を実行する場合は以下のように指定します。
1 2 |
# 毎日、2:00, 4:00, 6:00, ... , 24:00 にcommandを実行 0 */2 * * * command |
登録されている自動実行を表示する
登録されている自動実行を表示するには、オプション「-l」を指定します。
1 |
$ crontab -l |