cron
cron とは、Linux/Unix環境下でジョブ(何かしらのプログラムやスクリプト、コマンドなど)を自動的に実行するためのデーモンプロセスです。Windowsではタスクスケジューラが同様の機能にあたります。
自動実行するジョブや実行スケジュールは専用の設定ファイルに書き込んでおけばOKです。直接ファイルを編集することも可能ですが、多くはcrontabコマンドを使用して設定します。
crontabコマンドの書式
1 |
crontab [ -u ユーザ名 ] { -l | -r | -e } |
-u オプション
cronの設定ファイルはユーザごとに用意されていて、どのユーザの設定ファイルをcrontabコマンドの操作対象とするのかを指定するオプションです。なお、このオプションは、rootユーザのみ使用できます。-uオプションでユーザを指定すると、指定したユーザのcrontabファイルが操作の対象となります。省略した場合はcrontabコマンドを実行したユーザが対象となります。
1 2 |
# crontab -u shanks -l 1 * * * * echo "test" |
-l オプション
crontabファイルの内容を表示します。
1 2 |
$ crontab -l 1 * * * * echo "test" |
-r オプション
crontabファイルを削除します。全ての設定が削除されるので十分な注意が必要です。
1 |
$ crontab -r |
-e オプション
crontabを編集します。デフォルトのエディタ(通常はviエディタなど)が起動され、設定ファイルの編集を行ないます。
1 |
$ crontab -e |
設定書式
crontab -eコマンドでcrontabファイルの設定を行いますが、設定の書式が決まっています。(cronコマンドの実行を記述する行は6つの項目で形成されています)
初めてcrontabファイルを編集した場合は何も書かれていないので、一から自分で書くことになります。また、各項目ではワイルドカードとして「*」(アスタリスク)を使用することができます。
1 |
分 時 日 月 曜日 [実行するコマンドやスクリプトファイルのフルパス] |
【設定可能な数値】
●分 0-59
●時 0-23
●日 1-31
●月 1-12
●曜日 0-7 (1:月曜 2:火曜 3:水曜 4:木曜 5:金曜 6:土曜 0または7:日曜)
【実行時間の指定方法】
●リストで指定: 0,10,20,30(分フィールド指定した場合は0,10,20,30分に実行します)
●範囲で指定: 1-5(月フィールドで指定した場合、1,2,3,4,5月に処理を実行します)
●リストと範囲の両方で指定: 1,6,9-11(時間フィールドで指定した場合、1時、6時、9時、10時、11時に処理を実行します)
●間隔で指定: */10(分フィールドで指定した場合、10分間隔で処理を実行します。「/」の後ろに指定した値の間隔で処理を実行します)
【設定例】
6月30日 1:10
1 |
10 1 30 6 * |
毎週火曜日の1:10
1 |
10 1 * * 2 |
10分ごとに実行
1 |
*/10 * * * * |
3時間ごとに実行
1 |
00 0-23/3 * * * |
毎日10:30と23:30に実行
1 |
30 10,23 * * * |
毎月1日の7:00 8:00 9:00に実行
1 |
00 7-9 1 * * |
毎日7:00 9:00 16:00 17:00 18:00 19:00に実行
1 |
00 7,9,16-20 * * * |