定期的に実行したいプログラムを設定するには、crontab コマンドを使用します。crontab で設定を行うには、crond というデーモンが起動している必要があります。通常は自動的に起動されていますが、サービス管理ツールである turboservice などで確認してください。at コマンドは、指定日時に一度だけプログラムを実行しますが、crond は定期的にプログラムが実行できる点が異なります。指定したコマンドの実行結果が標準出力される場合は、at コマンドと同様に、その内容が指定したユーザー宛にメールで送信されます。メールは、mail コマンドなどで確認できます。
なお、Turbolinux 10 Server では、事前に用意された、/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly ディレクトリにスクリプトを配置することで、毎時、毎日、毎週、毎月と定期的にジョブを実行させることも可能です。
設定は、crontab コマンドで行います。以下のコマンドを実行すると、vi エディタが起動して設定ファイルが開きます。なお、設定ファイルは /var/spool/cron/ ディレクトリ以下に各ユーザー名のファイルで保存されます。
$ crontab -e |
設定ファイルは、以下の書式で入力します。
* * * * * コマンド名 |
5つの * は、それぞれ分、時、日、月、曜日を意味します。* は、ワイルドカードを示し、毎月や毎日と指定したい場合、値は * と指定します。値は , で区切って複数指定することも可能です。曜日の指定は、0 が日曜日となり、その後は順番に割り当てられます。よって、 6 は土曜日となります。
例えば、毎月1日と 15日の午前4時に /usr/local/bin/mybackup を実行したい場合は、以下のように指定します。
0 4 1,15 * * /usr/local/bin/mybackup |
複数のコマンドを設定する場合は、2行目以降に続けて入力します。設定完了後、保存して vi を終了します。これで、crontab の設定は完了です。指定した日時にコマンドが定期的に実行されます。
設定を修正する場合は、-e オプションを付けて crontab コマンドを実行します。
設定を確認するには、-l オプションを指定して、crontab コマンドを実行します。
$ crontab -l # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.XXXXQJwKFY installed on Mon Feb 17 18:37:10 2003) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 0 4 1,15 * * /usr/local/bin/mybackup |
また、設定を削除したい場合は、-r オプションを指定してコマンドを実行します。
$ crontab -r |
なお、一般ユーザーの crontab の実行を /etc/cron.allow と /etc/cron.deny で制限することが可能です。/etc/cron.allow が存在すれば、このファイルで指定されたユーザーのみ crontab での設定が可能です。/etc/cron.allow が存在せず、/etc/cron.deny が存在する場合、/etc/cron.deny に指定されているユーザーは crontab での設定は行えません。どちらのファイルも存在しない場合は、全てのユーザーが設定することができます。