この章では、crontab コマンドおよび at コマンドを使用して、定型作業や 1 度限りのシステムタスクをスケジューリングする方法を説明します。さらに、cron.deny、 cron.allow、at.deny の各ファイルを使用して、これらのコマンドの使用を制御する方法も説明します。
この章で説明する手順は次のとおりです。
たくさんのシステムタスクを設定して、自動的に実行することができます。 これらのタスクの中には、定期的な実行が必要になる作業があります。また、夜間や週末などの就業時間外に 1 回だけ実行する作業もあります。
この節では、 crontab と at という 2 つのコマンドについて概説します。これらのコマンドを使用すると、定型作業をスケジュールして、自動的に実行することができます。 crontab は、繰り返し実行するコマンドをスケジュールします。 at コマンドは、1 回だけ実行するタスクをスケジュールします。
次の表は、crontab コマンドと at コマンド、これらのコマンドの使用を制御できるファイルをまとめたものです。
表 18–1 システムタスクのスケジューリング用コマンド
コマンド |
スケジューリングの対象 |
ファイルの格納場所 |
制御ファイル |
---|---|---|---|
crontab |
一定間隔で実行する複数のシステムタスク |
/var/spool/cron/crontabs |
/etc/cron.d/cron.allow /etc/cron.d/cron.deny |
at |
1 つのシステムタスク |
/var/spool/cron/atjobs |
/etc/cron.d/at.deny |
Solaris 管理コンソールのスケジュールされたジョブツールを使用して、定型作業をスケジュールすることもできます。Solaris 管理コンソールの使用と起動の方法については、『Solaris のシステム管理 (基本編)』の「Solaris Management Console の操作 (手順)」を参照してください。
定型的なシステム管理タスクは、crontab コマンドを使用して、毎日、毎週、または毎月それぞれ 1 回ずつ実行するようにスケジュールできます。
毎日 1 回の crontab によるシステム管理作業には、次のようなものがあります。
作成後、数日以上経過したファイルを一時ディレクトリから削除する
アカウンティング要約コマンドを実行する
df および ps コマンドを使用してシステムのスナップショットを取る
日常のセキュリティ監視を実行する
システムのバックアップを実行する
毎週 1 回の crontab システム管理作業には、次のようなものがあります。
毎月 1 回の crontab システム管理作業には、次のようなものがあります。
指定月に使用されなかったファイルをリストする
月次アカウンティングレポートを生成する
上記に加えて、連絡事項の通知の転送やバックアップファイルの削除や、さらに他の定型的システム作業を実行するように crontab コマンドをスケジュールすることもできます。
crontab ジョブをスケジューリングする手順については、crontab ファイルを作成または編集する方法を参照してください。
特定の 1 つのジョブを後で実行するように at コマンドを使用してスケジュールできます。ジョブは 1 つのコマンドやスクリプトで構成されます。
crontab コマンドと同様に、at コマンドは定型作業の自動実行をスケジュールします。しかし、crontab ファイルとは異なり、at ファイルはそれぞれのタスクを 1 回実行して、その後はディレクトリから削除されてしまいます。したがって、at はそれぞれ単純なコマンドまたはスクリプトを実行して、後で調べることができるようにそれらの出力を別々のファイルに送るように使用するのが最も効果的です。
at ジョブの実行を指定するには、単にコマンド構文に従って at オプションで実行時刻を指定してください。at ジョブの実行を指定する方法についての詳細は、at コマンドの説明を参照してください。
at コマンドは、入力されたコマンドまたはスクリプトを、現在の環境変数のコピーと一緒に /var/spool/cron/atjobs ディレクトリに格納します。作成された at ジョブには、ファイル名として、at 待ち行列内での位置を指定する長い数値と .a 拡張子からなる、たとえば 793962000.a のような文字列が与えられます。
cron デーモンは、通常 15 分間隔で定期的に atrun プログラムを実行します。 atrun プログラムは、スケジュールされた時間に at ジョブを実行します。cron デーモンが at ジョブを実行すると、at ジョブのファイルが atjobs ディレクトリから削除されます。
at ジョブをスケジューリングする手順については、at ジョブを作成する方法を参照してください。
以降の各項で、crontab ファイルをどのように作成、編集、表示、削除するか、さらに、それらのファイルの使用をどのように制御するかを説明します。
cron デーモンは、各 crontab ファイル内にあるコマンドに従ってシステムタスクをスケジュールします。crontab ファイルには、それぞれ一定間隔で実行されるコマンドが 1 行に 1 つずつ入っています。各行の先頭は cron デーモンが各コマンドを実行する日時情報です。
たとえば、SunOS ソフトウェアのインストール時に root という名前の crontab ファイルが提供されますが、このファイルの内容は次のとおりです。
10 3 * * * /usr/sbin/logadm 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean |
最初の行は、毎日午前 3 時 10 分に logadm コマンドを実行します。2 行目は、毎週日曜日の午前 3 時 15 分に nfsfind スクリプトを実行します。3 行目は、毎日午前 2 時 10 分に夏時間をチェック (して必要に応じて修正) するスクリプトを実行します。RTC タイムゾーンも /etc/rtc_config ファイルもない場合、このエントリは何もしません。4 行目は、毎日午前 3 時 30 分に Generic Security Service テーブル /etc/gss/gsscred_db の重複エントリをチェック (重複エントリがある場合は削除) します。
crontab ファイル内のコマンド行の構文の詳細は、crontab ファイルエントリの構文を参照してください。
crontab ファイルは、 /var/spool/cron/crontabs ディレクトリに保存されます。SunOS ソフトウェアのインストール時には、root 以外にもいくつかの crontab ファイルが提供されます (表 18–2 を参照してください)。
表 18–2 デフォルトの crontab ファイル
crontab ファイル |
機能 |
---|---|
adm |
アカウンティング |
lp |
印刷 |
root |
一般的なシステム機能とファイルシステムの整理 |
sys |
パフォーマンス情報の収集 |
uucp |
一般的な uucp の整理 |
デフォルトの crontab ファイルの他に、ユーザーは crontab ファイルを作成してユーザー自身のシステムタスクをスケジュールできます。その他の crontab ファイルは、それらの中に作成されるユーザーのアカウントに基づいて、bob、mary、smith、jones などのように命名されます。
root または他のユーザーが所有する crontab ファイルに使用するには、スーパーユーザーの特権が必要です。
crontab ファイルの作成、編集、表示、削除の手順については、以降の節で説明します。
cron デーモンは crontab コマンドの自動スケジューリングを管理します。cron デーモンは、通常、15 分ごとに /var/spool/cron/crontab ディレクトリに crontab ファイルがあるかどうかをチェックします。cron デーモンは、新しい crontab ファイルがないか、既存の crontab が変更されていないかを確認し、いずれかがあった場合は、ファイル内のリストから実行時刻を読み取り、正しい時刻にコマンドを実行します。
ほとんど同様に、cron デーモンは /var/spool/cron/atjobs ディレクトリ内の at ファイルのスケジューリングを制御します。
crontab ファイルは、1 行に 1 つのコマンドが入った構成になっています。これらのコマンド行の最初の 5 つのフィールドには、コマンドが実行される時刻を指定し、それぞれスペースで区切ります。これら 5 つのフィールドを、次の表で説明します。
表 18–3 crontab 時刻フィールドの値
時刻フィールド |
値 |
---|---|
分 |
0-59 |
時 |
0-23 |
日 |
1-31 |
月 |
1-12 |
曜日 |
0 - 6 (0 は日曜日) |
次に、crontab 時刻フィールドで特殊文字を使用する際のガイドラインを示します。
各フィールドはスペースで区切る
複数の値の間はコンマで区切る
値の範囲はハイフンを使用して指定する
コメントまたは空白行を示すには、行の先頭にコメント記号 (#) を使用する
たとえば、次の crontab コマンドエントリの例は、毎月 1 日と 15 日の午後 4 時に、ユーザーのコンソールウィンドウに注意を促すメッセージを表示します。
0 16 1,15 * * echo Timesheets Due> /dev/console |
crontab ファイル内の各コマンドは、長くても 1 行内に入れなければなりません。これは、crontab が余分なキャリッジリターンを認識しないからです。crontab のエントリとコマンドオプションの詳細は、crontab(1) のマニュアルページを参照してください。
crontab ファイルを作成するもっとも簡単な方法は、crontab -e コマンドを使用することです。このコマンドは、使用するシステム環境で使用できる環境変数 EDITOR で指定されたテキストエディタを起動します。この環境変数が設定されていない場合は、crontab はデフォルトのエディタ ed を使用します。あらかじめ、使い慣れたエディタを選択しておく必要があります。
次の例は、エディタが定義されたかどうかを確認する方法と、vi をデフォルトのエディタとして設定する方法を示しています。
$ which $EDITOR $ $ EDITOR=vi $ export EDITOR |
crontab ファイルを作成すると、自動的に /var/spool/cron/crontabs ディレクトリ内に格納され、作成者のユーザー名で命名されます。スーパーユーザー特権があれば、他のユーザーや root の crontab ファイルを作成または編集できます。
(省略可能) root または他のユーザーが所有する crontab ファイルを作成または編集する場合は、スーパーユーザーになります。
次のように入力して、新しい crontab ファイルを作成するか、既存の crontab ファイルを編集します。
$ crontab -e [username] |
username は、crontab ファイルを作成または編集するユーザーのアカウント名を指定します。他のユーザーの crontab ファイルを作成または編集するには、スーパーユーザーの権限が必要です。
誤ってオプションを指定しないで crontab コマンドを入力した場合は、使用しているエディタの中断文字を入力してください。この文字を入力すると、変更結果を保存せずに crontab コマンドを終了できます。この場合に変更結果を保存してファイルを終了すると、既存の crontab ファイルが空のファイルで上書きされます。
コマンド行をファイルに追加します。
crontab ファイルエントリの構文に記載されている構文に従ってください。crontab ファイルは /var/spool/cron/crontabs に格納されます。
crontab ファイルの変更箇所を確認します。
# crontab -l [username] |
次の例は、他のユーザーのための crontab ファイルをどのように作成するかを示します。
# crontab -e jones |
次の新しい crontab ファイルに追加されたコマンドは、毎週日曜日の午前 1 時にユーザーのホームディレクトリからすべてのログファイルを自動的に削除します。このコマンドエントリは出力先を変更しないので、出力先変更文字がコマンド行の *.log の後に追加されて、そのコマンドが正しく実行されるようにしています。
# This command helps clean up user accounts. 1 0 * * 0 rm /home/jones/*.log> /dev/null 2>&1 |
特定のユーザーの crontab ファイルがあるかどうかを確認するには、/var/spool/cron/crontabs ディレクトリで ls -l コマンドを使用します。たとえば、次の表示はユーザー smith と jones の crontab ファイルがあることを示しています。
$ ls -l /var/spool/cron/crontabs -rw-r--r-- 1 root sys 190 Feb 26 16:23 adm -rw------- 1 root staff 225 Mar 1 9:19 jones -rw-r--r-- 1 root root 1063 Feb 26 16:23 lp -rw-r--r-- 1 root sys 441 Feb 26 16:25 root -rw------- 1 root staff 60 Mar 1 9:15 smith -rw-r--r-- 1 root sys 308 Feb 26 16:23 sys |
ユーザーの crontab ファイルの内容を確認するには、crontab -l コマンドを使用します。crontab ファイルを表示する方法を参照してください。
crontab -l コマンドは、cat コマンドが他のファイルタイプの内容を表示するのとまったく同様に、使用しているユーザーの crontab ファイルの内容を表示します。このコマンドを使用するために、ディレクトリを (crontab ファイルが入っている) /var/spool/cron/crontabs に変更する必要はありません。
デフォルトでは、crontab -l コマンドは自分自身の crontab ファイルを表示します。他のユーザーの crontab ファイルは、スーパーユーザーでなければ表示できません。
(省略可能) root または他のユーザーの crontab ファイルを表示する場合は、スーパーユーザーになります。
次のように入力して、crontab ファイルを表示します。
$ crontab -l [username] |
username は、表示する crontab ファイルのユーザーのアカウント名を指定します。他のユーザーの crontab ファイルを表示するには、スーパーユーザーの権限が必要です。
誤ってオプションを指定しないで crontab コマンドを入力した場合は、使用しているエディタの中断文字を入力してください。この文字を入力すると、変更結果を保存せずに crontab コマンドを終了できます。この場合に変更結果を保存してファイルを終了すると、既存の crontab ファイルが空のファイルで上書きされます。
次の例で、どのように crontab -l コマンドを使用してユーザのデフォルトの crontab ファイル、root のデフォルトの crontab ファイル、他のユーザーの crontab ファイルを表示するかを示します。
$ crontab -l 13 13 * * * chmod g+w /home1/documents/*.book> /dev/null 2>&1 $ suPassword: # crontab -l #ident "@(#)root 1.19 98/07/06 SMI" /* SVr4.0 1.1.3.1 */ # # The root crontab should be used to perform accounting data collection. # # The rtc command is run to adjust the real time clock if and when # daylight savings time changes. # 10 3 * * * /usr/sbin/logadm 15 3 * * 0 /usr/lib/fs/nfs/nfsfind 1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean # crontab -l jones 13 13 * * * cp /home/jones/work_files /usr/backup/. > /dev/null 2>&1 |
デフォルトでは、rm コマンドを使用して誤って crontab ファイルを削除してしまうことがないように、crontab ファイルは保護されています。crontab ファイルを削除する場合は、rm コマンドではなく crontab -r コマンドを使用してください。
デフォルトでは、crontab -r は、このコマンドを実行したユーザーの crontab を削除します。root またはその他のユーザーの crontab を削除するには、スーパーユーザーにならなければなりません。
このコマンドを使用するには、ディレクトリを (crontab ファイルが入っている) /var/spool/cron/crontabs に変更する必要はありません。
(省略可能) root または他のユーザーの crontab ファイルを削除するには、スーパーユーザーになります。
次のように入力して、crontab ファイルを削除します。
$ crontab -r [username] |
username は、削除する crontab ファイルのユーザーのアカウント名を指定します。他のユーザーの crontab ファイルを削除するには、スーパーユーザーの権限が必要です。
誤ってオプションを指定しないで crontab コマンドを入力した場合は、使用しているエディタの中断文字を入力してください。この文字を入力すると、変更結果を保存せずに crontab コマンドを終了できます。この場合に変更結果を保存してファイルを終了すると、既存の crontab ファイルが空のファイルで上書きされます。
crontab ファイルが削除されたことを確認します。
$ ls /var/spool/cron/crontabs |
次の例では、ユーザー smith が crontab -r コマンドを使用して自分の crontab ファイルを削除します。
$ ls /var/spool/cron/crontabs adm jones lp root smith sys uucp $ crontab -r $ ls /var/spool/cron/crontabs adm jones lp root sys uucp |
cron.deny と cron.allow という /etc/cron.d ディレクトリ内の 2 つのファイルを使用して、crontab の使用を制御できます。これらのファイルによって、指定したユーザーだけが、それぞれ自分の crontab ファイルの作成、編集、表示、または削除などの crontab コマンドのタスクを実行できるようにします。
cron.deny および cron.allow ファイルは、それぞれ 1 行に 1 ユーザー名が入ったリストからなります。これらの使用制御用ファイルは、次のように連携して機能を果たします。
cron.allow が存在する場合は、このファイルにリストされているユーザーだけが crontab ファイルを作成、編集、表示、または削除できます。
cron.allow が存在しない場合は、cron.deny にリストされているユーザーを除くすべてのユーザーが crontab ファイルの実行を依頼できます。
cron.allow も cron.deny も存在しない場合は、root 以外は crontab コマンドを実行できません。
cron.deny と cron.allow ファイルを編集または作成するには、スーパーユーザーの権限が必要です。
Solaris ソフトウェアのインストール時に作成される cron.deny ファイルには、次のユーザー名が含まれます。
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess |
デフォルトの cron.deny ファイル内のユーザー名は、いずれも crontab コマンドを使用できません。このファイルを編集して、crontab コマンドの使用を拒否したいユーザー名を追加できます。
デフォルトでは、cron.allow ファイルは提供されません。つまり、Solaris ソフトウェアをインストールした直後は、すべてのユーザー (デフォルトの cron.deny ファイルにリストされているユーザーを除く) が crontab コマンドを使用できます。cron.allow ファイルを作成した場合、そのユーザーだけが crontab コマンドを使用できます。
スーパーユーザーになります。
/etc/cron.d/cron.deny ファイルを編集し、crontab コマンドを使用させないユーザー名を 1 行に 1 つずつ追加します。
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . . |
/etc/cron.d/cron.deny ファイルを確認します。
# cat /etc/cron.d/cron.deny |
/etc/cron.d/cron.allow ファイルを作成します。
root ユーザー名を cron.allow ファイルに入力します。
このファイルに root を追加しないと、スーパーユーザーの crontab コマンドの使用が拒否されます。
次のように、crontab コマンドの使用を許可するユーザー名を 1 行に 1 つずつ入力します。
root username1 username2 username3 . . . |
次は、ユーザー visitor、jones、temp に crontab を使用させない cron.deny ファイルの例です。
$ cat /etc/cron.d/cron.denydaemon bin smtp nuucp listen nobody noaccess jones temp visitor |
次は cron.allow ファイルの例です。ユーザー smith、jones、lp および root だけが、 crontab コマンドを使用できます。
$ cat /etc/cron.d/cron.allow root jones lp smith |
特定のユーザーが crontab を使用できるかどうかを確認するには、そのユーザーのアカウントでログインして crontab -l コマンドを使用します。
$ crontab -l |
そのユーザーが crontab を使用できて、すでに crontab ファイルを作成している場合は、その crontab ファイルが表示されます。そのユーザーが crontab を使用できるが、crontab ファイルがない場合は、次のようなメッセージが表示されます。
crontab:crontab ファイルを開けません |
このユーザーは、cron.allow (が存在する場合) に含まれているか、cron.deny に含まれていません。
ユーザーが crontab コマンドを使用できない場合は、上記の crontab ファイルの有無に関わらず、次のメッセージが表示されます。
crontab: cron を使用許可されていません |
このメッセージは、ユーザーが cron.allow (が存在する場合) に含まれていないか、cron.deny ファイルに含まれていることを意味します。
以降の節では、at コマンドを使用して特定の時刻にジョブ (コマンドとスクリプト) をスケジュールする方法、これらのジョブを表示して削除する方法、 at コマンドの使用を制御する方法について説明します。
デフォルトでは、ユーザーはそれぞれ自分の at ジョブファイルを作成、表示、または削除できます。root または他のユーザーの at ファイルにアクセスするには、スーパーユーザーの権限が必要です。
at ジョブの実行を指定すると、at ジョブにジョブ識別番号と .a 拡張子が与えられ、それがジョブのファイル名になります。
コマンド実行時刻を指定して at ユーティリティを起動します。
後で実行させるコマンドまたはスクリプトを入力します。
このコマンドまたはスクリプトからの出力が重要な場合は、後で調べることができるように、出力内容を必ずファイルに書き込むようにしてください。
たとえば、次の at ジョブは、7 月 31 日の真夜中に smith のユーザーアカウントから core ファイルを削除します。
$ at 11:45pm July 31 at> rm /home/smith/*core* at> Press Control-d commands will be executed using /bin/csh job 933486300.a at Tue Jul 31 23:45:00 2001 |
特定のユーザーだけがそれぞれの at ジョブに関する待ち行列情報を作成、削除、または表示できるように、at コマンドの使用を制御するファイルを設定できます。at コマンドの使用を制御するファイルは /etc/cron.d/at.deny です。ここにはユーザー名が列挙 (1 行に 1 人) されています。このファイルに列挙されているユーザーは、at コマンドを使用できません。
Solaris ソフトウェアのインストール時に作成される at.deny ファイルには、次のユーザー名が含まれます。
daemon bin smtp nuucp listen nobody noaccess |
スーパーユーザーの特権があれば、at.deny ファイルを編集して、at の使用を制限したい他のユーザー名を追加できます。
at ユーティリティを起動して、ジョブを実行したい時間を指定します。
$ at [-m] time [date] |
-m |
ジョブ終了後にメールを送る |
time |
ジョブをスケジュールしたい時刻の時単位の値。24 時間制を使用しない場合は、am または pm を追加する。使用できるキーワードは、 midnight、noon、now。 分単位の値の指定は省略可能 |
date |
月または曜日の名前の最初の 3 英字以上、またはキーワード today または tomorrow |
at プロンプトに、実行したいコマンドまたはスクリプトを 1 行に 1 つずつ入力します。
各行の終わりで Return キーを押すことにより、複数のコマンドを入力できます。
at ユーティリティを終了し、Control-D キーを押して at ジョブを保存します。
作成できた at ジョブは待ち行列番号を割り当てられ、それがそのジョブのファイル名にもなります。この番号は at ユーティリティの終了時に表示されます。
次の例は、ユーザー jones が彼女のバックアップファイルを 7:30 pm に削除するように作成した at ジョブを示しています。彼女は、ジョブの終了後にメールメッセージを受け取れるように、-m オプションを使用しています。
$ at -m 1930 at> rm /home/jones/*.backup at> Control-D を押す job 897355800.a at Thu Jul 12 19:30:00 2001 |
jones は次のメールメッセージを受け取りました。このメッセージは at ジョブが終了したことを確認しています。
Your “at” job “rm /home/jones/*.backup” completed. |
次の例は、jones が土曜の午前 4 時の大規模な at ジョブをどのようにスケジュールしたのかを示しています。 ジョブの出力先は big.file です。
$ at 4 am Saturday at> sort -r /usr/dict/words> /export/home/jones/big.file |
at 待ち行列で実行を待っているジョブを確認するには、次に示すように atq コマンドを使用します。このコマンドは、その使用者が作成した at ジョブに関する状態情報を表示します。
$ atq |
at ジョブが作成できたかどうかを確認するには、atq コマンドを使用します。次の atq コマンドは、jones に属する at ジョブが待ち行列に入っていることを確認しています。
$ atq Rank Execution Date Owner Job Queue Job Name 1st Jul 12, 2001 19:30 jones 897355800.a a stdin 2nd Jul 14, 2001 23:45 jones 897543900.a a stdin 3rd Jul 17, 2001 04:00 jones 897732000.a a stdin |
自分の at ジョブの実行時刻に関する情報を表示するには、次のように at -l コマンドを使用します。
$ at -l [job-id] |
-l job-id オプションで、状態を表示したいジョブの識別番号を指定します。
次の例は、at -l コマンドからの出力を示しています。このコマンドは、特定のユーザーが依頼したすべてのジョブに関する状態を表示します。
$ at -l 897543900.a Sat Jul 14 23:45:00 2001 897355800.a Thu Jul 12 19:30:00 2001 897732000.a Tue Jul 17 04:00:00 2001 |
次の例は、at -l コマンドに 1 つのジョブを指定して表示された出力を示しています。
$ at -l 897732000.a 897732000.a Tue Jul 17 04:00:00 2001 |
次のように入力して、at ジョブが実行される前に待ち行列から削除します。
$ at -r [job-id] |
-r job-id オプションで、削除したいジョブの識別番号を指定します。
at -l (または atq) コマンドを使用して、at ジョブが削除されていることを確認します。
at -l コマンドは、at 待ち行列に残っているジョブを表示します。識別番号を指定したジョブは、このリストに表示されないはずです。
$ at -l [job-id] |
次の例では、ユーザーが 7 月 17 日の午前 4 時に実行されるようにスケジュールした at ジョブを削除しようとしています。まず、このユーザーは at 待ち行列を表示してそのジョブの識別番号を探します。次に、そのジョブを at 待ち行列から削除します。最後に、at 待ち行列をもう一度表示して上記のジョブが削除されていることを確認します。
$ at -l 897543900.a Sat Jul 14 23:45:00 2001 897355800.a Thu Jul 12 19:30:00 2001 897732000.a Tue Jul 17 04:00:00 2001 $ at -r 897732000.a $ at -l 897732000.a at: 858142000.a: No such file or directory |
スーパーユーザーになります。
/etc/cron.d/at.deny ファイルを開きます。at コマンドを使用させないようにするユーザー名を 1 行に 1 つずつ追加または削除します。
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . . |
次は、ユーザー smith と jones が at コマンドを使用できないように編集された at.deny ファイルの例です。
$ cat at.deny daemon bin smtp nuucp listen nobody noaccess jones smith |
特定のユーザー名が正しく /etc/cron.d/at.deny に追加されているかどうかを確認するには、そのユーザー名でログインして、at -l コマンドを使用します。そのユーザーが at コマンドを使用できない場合は、次のメッセージが表示されます。
# su smith Password: $ at -l at: 使用許可されていません |
同様に、そのユーザーが at ジョブの実行を依頼しようとした場合は、次のメッセージが表示されます。
$ at 2:30pm at: 使用許可されていません |
このメッセージによって、そのユーザーが at.deny ファイルに含まれていることが確認されます。
at コマンドを使用できる場合、at -l コマンドは何も返しません。