プログラムを定期的に実行するには

 バックアッププログラムのように、定期的にプログラムを実行する場合は、cronを使用する。一定の時間後にプログラムを実行するにはで紹介したatコマンドは、プログラムを実行するのが一度だけという点が、cronとは異なる。

 cronを使用するには、crondというデーモンが起動していなければならない。ntsysvコマンド(Red Hat系)やturboserviceコマンド(Turbolinux)で確認しておく。cronの設定は、crontabコマンドで行う。以下のコマンドを実行すると、viが起動して、cronの設定ファイルが開かれる。

$ crontab -e

 cronの設定ファイルは、

* * * * * コマンド名

という書式になる。最初の5つの「*」は、それぞれ分、時、日、月、曜日を表す。また、「*」は値を設定していないことを表す。値は「,」で区切って複数指定することもできる。曜日は、0が日曜日で6が土曜日になる。

 例えば、毎月1日と15日の午前5時30分に/usr/local/bin/mycommandコマンドを実行するには、

30 5 1,15 * * /usr/local/bin/mycommand

とする。

 保存してviを終了させれば、cronの設定は終了だ。設定した内容を確認するには、-lオプションでcrontabコマンドを実行する。

$ crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.959 installed on Mon Apr 9 07:37:35 2001)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
30 5 1,15 * * /usr/local/bin/mycommand

 一度設定したcronを訂正するときも、-eオプションを付けてcrontabコマンドを実行する。また、複数の設定を行うときは、2行目以降に続けて設定を行えばいい。

 cronの削除は、以下のコマンドを実行する。

$ crontab -r
$ crontab -l
no crontab for nori

 なお、指定したコマンドが実行結果を表示するタイプだった場合は、atコマンドと同様に、メールでその内容がcronを指定したユーザーあてに送られる。