AT(1)

名称
at, batch, atq, atrm - あとでジョブを実行させるためのキューの設定、確認、ジョブの削除を行う

書式
at [-V] [-q queue] [-f file] [-mldbv] time

at [-V] -c job [job ...]

atq [-V] [-q queue] [-v]

atrm [-V] job [job ...]

batch [-V] [-q queue] [-f file] [-mv] [time]

解説
at と batch は、標準入力もしくは指定したファイルからコマンドを読み 込み、あとで sh(1) を使って実行します。

at  コマンドを、引数で指定した時間に実行します。

atq ユーザの、実行待ち状態のジョブのリストを表示します。 スーパーユーザが実行した場合は全員のジョブが表示されます。

atrm
    指定したジョブを削除します。

batch
    システムのロードレベルが許される値になった時にコマンドを実行します。 言い替えると、ロードアベレージが 1.5 または atrun の起動時に指定した値以下になったときにコマンドを実行します。

at の time には、適度に複雑な記述法がいくつかあります。 時間を HHMM または HH:MM の形で指定すると、その日の指定した時間にジョブが実行されます (もしこの時間が過ぎていた場合は、次の日のその時間に設定されます)。また、 midnight, noon, teatime (4PM) も受け付けますし、午前または午後に実行させるために時刻の後ろに AM もしくは PM をつけることもできます。ジョブが実行される日を指定するには、その日付を 月の名前 、 日 、 オプションの 年 、の形で受け付けます。 ‘MMDDYY’, ‘MM/DD/YY’, ‘DD.MM.YY’ も受け付けます。日付の指定は時刻より後でなければいけません。 また、 [now] + count time-units の形式で時間を指定することも可能です。ここでの time-units は minutes, hours, days, weeks です。時間のサフィックスの today はジョブを今日に設定することを、 tommorow は明日に設定することを意味します。

たとえば、今から 3 日後の午後 4 時にジョブを走らせるためには at 4pm + 3 days とします。7 月 31 日の午前 10 時の場合は at 10am Jul 31 と指定します。明日の午前 1 時は at 1am tomorrow です。

at と batch では、コマンドは標準入力から読むか、 -f オプションで指定したファイルから読み、実行されます。 ワーキングディレクトリと環境変数 (TERM, TERMCAP, DISPLAY および _ は除く) と umask は、実行時のものが保持されます。もし at または batch が su(1) で起動されたシェルから実行された場合は、その時点でのユーザ ID が保時 されます。 コマンドの標準出力と標準エラー出力からの出力があれば、ユーザに対して メールで送られます。メールは sendmail(8) を使って送られます。 at が su(1) で起動されたシェルから実行された場合は、そのログインシェルのオーナが メールを受けます。

スーパーユーザでであればこれらのコマンドはいつでも使うことができます。 それ以外のユーザの場合、 at の使用許可はファイル /var/at/at.allow と /var/at/at.deny で決まります。

ファイル /var/at/at.allow があれば、このファイルに記述してあるユーザだけが at を使うことができます。

/var/at/at.allow がなければ、 /var/at/at.deny がチェックされ、このファイル内に記述されていないユーザは全て at を使うことができます。

どちらもない場合には、スーパユーザだけが at を使うことができます。

/var/at/at.deny が空になっていれば、全てのユーザがこれらのコマンドを使うことができます。 これがデフォルトの設定です。

オプション

-V  バージョン番号を標準エラー出力に出力します。

-q queue
    指定したキューを用います。キューの名称は単一の文字からなります。 有効なキューの名前は a から z までと A から Z までです。 c は at のデフォルトのキューで、 E は batch のデフォルトキューです。キューの文字が後の方であればあるほど nice 値が 上がります。名前が大文字のキューに割り当てられたジョブは、 指定された時刻にバッチ処理を行うように扱われます。 もし atq でキューが指定されたときは、そのキューだけの実行待ちのジョブを表示します。

-m  出力がなかった場合でも、ジョブの完了時にメールをユーザに送ります。

-f file
    標準入力のかわりに file からジョブを読み込みます。

-l  atq のエイリアスです。

-d  atrm のエイリアスです。

-b  batch のエイリアスです。

-v  atq の場合、実行は完了したが、まだキューから削除されていないものを示します。 これ以外の場合、そのジョブが実行される時間を表示します。

-c  コマンドライン上で指定したジョブを標準出力に cat します。

関連ファイル
/var/at/jobs
    ジョブファイルを保管しておくディレクトリ
/var/at/spool
    出力ファイルを保管しておくディレクトリ
/var/run/utmp
    ログインの記録
/var/at/at.allow
    許可属性の制御
/var/at/at.deny
    不許可属性の制御
/var/at/.lockfile
    ジョブ作成のロックファイル

関連項目
cron(8), nice(1), umask(2), sh(1), sendmail(8), atrun(8)

バグ
もし /var/run/utmp がないか壊れている場合、または、 at を起動した時にそのユーザがログインしていない場合は、 メールは環境変数 LOGNAME 内のユーザ ID のユーザへ送られます。 もしこれが未定義か空であった場合は、現在のユーザ ID が用いられます。

at, AT&T UNIX と batch の現在の実装では、ユーザが資源の取りあいをしている場合には不適切です。 あなたのサイトがこれに該当する場合は、 nqs などの他のバッチシステムの利用を考えるべきです。

作者
At の大部分は Thomas Koenig <ig25@rz.uni-karlsruhe.de> によって書かれました。 時間の解析ルーチンは David Parsons <orc@pell.chi.il.us> によって書かれました。