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 をつけた時間も受け付けます。日付は、 month-name day およびオプションの year の形で受け付けます。 DD.MM.YYYY, DD.MM.YY, MM/DD/YYYY, MM/DD/YY, MMDDYYYY, MMDDYY も受け付けます。 日付の指定は時刻の指定の後に記述します。 [now] + count time-units のような形式で時間を指定することも可能です。time-units は時間の単位で、 minutes, hours, days, weeks のいずれかです。時間のサフィックスの today はジョブを今日に設定すること、 tomorrow はジョブを明日に設定することを意味します。

例えば、今から 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) で起動されたシェルから実行された場合は、カレントの userid を保持します。 出力結果が得られた場合は、 その標準出力と標準エラー出力がメールで送られます。メールは sendmail(8) を使って送られます。もし at が su(1) で起動されたシェルから実行された場合は、そのログインシェルの所有者が メールを受けることになります。

スーパユーザはどんな場合でもこれらのコマンドを実行できます。 その他のユーザは /var/at/at.allow と /var/at/at.deny のファイルによって at を実行できるか決められます。

もし /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 です。 at のデフォルトのキューは c で、 batch のデフォルトのキューは E です。 キューの文字が後の方であればあるほど nice 値が上がります。 もし大文字のキューがジョブに対して指定されたならば、時間を指定して batch が実行されたものとして扱われます。 もし atq でキューが指定されたときは、そのキューだけの実行待ちのジョブを表示します。

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

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

-l  atq のエイリアス。

-d  atrm のエイリアス。

-b  batch のエイリアス。

-v  atq の場合は、キューの中の実行されたがまだ削除されていないジョブを 表示します。さもなければジョブが実行される時間を表示します。

-c  コマンドラインにリストされたジョブを標準出力に出力します。

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

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

バグ
/var/run/utmp が利用できないか不正であった場合、もしくは at が実行された時にユーザがログインしていない場合、 環境変数 LOGNAME で表される userid にメールが送られます。 もし定義されていないか空ならばカレントの userid になります。

ユーザ同士でリソースの競合がある場合は現実装の at と batch は適当ではありません。 もしあなたのサイトがこのような場合にあてはまるのなら、 nqs のような他のバッチシステムを検討してください。

作者
at のほとんどの部分は Thomas Koenig <ig25@rz.uni-karlsruhe.de> によって作成されました。 時間の構文解析部分は David Parsons <orc@pell.chi.il.us> によって作成されました。