●cron
定期的に自動でジョブを実行。デーモン名は「crond」。
ユーザ用と管理者が設定するシステム用の2種類の設定ファイル(crontabファイル)がある。
●cronの設定ファイル
・ユーザ用のcrontabファイルは 「/var/spool/cron/ユーザ名」、「var/spool/cron/crontabs/ユーザ名」(ディストリビューションによる)、テキストエディタで直接編集はできない。ユーザ用のcronの設定を行うには「crontab」コマンドを使用。
・システム用のcrontabファイル(/etc/crontab)はviなどのテキストエディタで直接編集できる。ユーザ用のcrontabファイルの書式と異なり、各コマンドの実行ユーザも指定する必要がある。
●crontabファイルでは1行ごとに、自動的に実行するコマンドおよびその実行日時を指定。
crontabファイルの書式
[分] [時] [日] [月] [曜日] [実行ユーザ名(システム用設定ファイルでのみ指定)] [コマンド]
項目
・分 0~59で指定
・時 0~23で指定
・日 1~31で指定
・月 1~12で指定
・曜日 0~7で指定(0,7=日曜、1=月・・・)
表記
・* 全ての範囲に一致
・- 範囲の指定。時に1−5を指定すると1時から5時までを意味する
・, 複数の値を指定
・/ 間隔の指定。時に「1−9/2」と指定すると1時から9時の間で2時間おきを意味する
●ユーザ用の設定
ユーザ用のcrontabファイルは テキストエディタで直接編集はできないので「crontab」コマンドを使用する。
crontab [オプション]
オプション
・-e(edit) 設定ファイル(crontabファイル)を編集
・-r(remove) 設定ファイルを削除
・-l(list) 設定ファイルを表示
crontab -eコマンドを実行するとEDITOR環境変数で指定されたエディタ(未指定の場合はviエディタ)が開き、ユーザ用のcrontabファイル(/var/spool/cron/ユーザ名)が編集できるようになる。
●cronのアクセス制御
cronを利用するユーザを制限するには、「/etc/cron.allow」ファイルと「/etc/cron.deny」ファイルを使用。「/etc/cron.allow」には利用を許可するユーザを、「/etc/cron.deny」ファイルには利用を拒否するユーザを記述。
■cronおよびat、batchのアクセス制御に使用されるファイルをまとめたもの
・cronのアクセス制御
許可 /etc/cron.allow
拒否 /etc/cron.deny
・at,batchのアクセス制御
許可 /etc/at.allow
拒否 /etc/at.deny
各ファイルは以下の順序で評価される。
- 「/etc/cron.allow」ファイルがあれば、記述のあるユーザのみが利用可能
- 「/etc/cron.allow」ファイルがなければ、「/etc/cron.deny」を参照し、そこに記述のないユーザが利用可能
- 両方のファイルがなければ、rootユーザのみが利用可能
「/etc/cron.allow」ファイルが存在する場合、「/etc/cron.deny」ファイルの設定は無視され、「/etc/cron.allow」がなく「/etc/cron.deny」の中身に何も記述されていなければ、すべてのユーザが利用可能。
※UbuntuなどのDebian系ではどちらも存在しない場合は全てのユーザーが利用可能
※上記はat,batchの「/etc/at.allow」「/etc/at.deny」も同様
※rootユーザーの場合、両方のファイルが存在しない場合でも利用可能