Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
at, batch, atq, atrm - 後に実行するジョブのキュー操作、確認、削除
書式
at [-V] [-q queue] [-f file] [-u username] [-mMlv] timespec ..." at [-V] [-q queue] [-f file] [-u username] [-mMkv] [-t time] at -c job [...] at [-V] -l [-o timeformat] [job ...] atq [-V] [-q queue] [-o timeformat] [job ...] at [-rd] job [...] atrm [-V] job [...] batch at -b
説明
at と batch は、 標準入力や指定されたファイルからコマンドを読み取って、 /bin/sh を使って後 で実行します。 at 指定された時間にコマンドを実行します。 atq ペンディングとなっているユーザージョブの一覧を表示します。 ただしスーパーユーザー が起動した場合には、 全ユーザーのジョブを表示します。 出力行の書式は (各ジョブを 1 行ずつに) 、ジョブ番号、日付、時間、キュー、ユーザー名を表示します。 atrm ジョブ番号によって識別されるジョブを削除します。 batch システムの負荷レベルが許容される範囲にある場合にコマンドを実行します。 つまり負荷 平均が 0.8 以下、 または atd で指定された値以下の場合にコマンドを実行します。 at では複雑な時間指定ができます。 これは POSIX.2 標準を拡張したものです。 ジョブを実行する 時刻は HH:MM という形式で指定できます。 (すでにその時刻が過ぎている場合は、 次の日として扱 われます。) また midnight (真夜中), noon (正午), teatime (午後 4 時のティータイム) を指定 できます。 午前午後を表す AM, PM も指定可能です。 さらにコマンドを実行する日付を指定するこ ともできます。 日付の書式は month-name day であり、 任意として year を指定します。 あるい は MMDD[CC]YY, MM/DD/[CC]YY, DD.MM.[CC]YY, [CC]YY-MM-DD が可能です。 日付の指定は、 時刻の 指定の後に行わなければなりません。 時間の指定において、 now + count time-units といった記 述もできます。 ここにおいて time-units とは minutes, hours, days, weeks のことです。 at に 対しては、 時刻の後ろにサフィックスとして today をつければ、 本日の実行を指示することにな ります。 サフィックスとして tomorrow をつければ明日の実行となります。 たとえば今から 3 日後の午後 4 時にジョブを実行する場合は、 at 4pm + 3 days と指定します。 7 月 31 日の 10:00am にジョブを実行するには、 at 10am Jul 31 と指定します。 明日の 1am で あれば at 1am tomorrow とします。 ジョブの実行に指定された時刻、日付が完全に過去であった場合、 ジョブはできる限りそのときに 実行されます。 たとえば今が 8pm であって at 6pm today と実行すると、 8:05pm には実行されて いるはずです。 時間指定に関する定義は /usr/share/doc/at/timespec に記述されています。 at と batch はともに標準入力から読み込みを行い、 あるいは -f オプションが指定されていれば ファイルから読み込みを行って、 処理が実行されます。 ワーキングディレクトリ、 環境変数 (た だし BASH_VERSINFO, DISPLAY, EUID, GROUPS, SHELLOPTS, TERM, UID, _ を除く)、 umask は、 い ずれも処理実行時の値が保持されます。 現在の at は setuid プログラムとして実装されています。 したがって他の環境変数 (つまり LD_LIBRARY_PATH や LD_PRELOAD など) も、 同様にエクスポートされません。 これは将来変更され るかもしれません。 これを回避するには、 ジョブ内において明示的にそれらの変数を設定してくだ さい。 at と batch のコマンドが su(1) シェルから呼び出された場合、 現在の userid が保持されま す。 このユーザーに対しては、 コマンド実行によって標準エラー出力や標準出力への書き込みが発 生した際には、 その内容がメール送信されます。 メールは /usr/sbin/sendmail コマンドを使って 送信されます。 su(1) シェルから at が実行されると、 ログインシェルの所有者がメールを受信し ます。 スーパーユーザーであれば、 いつでもこのコマンドを使用できます。 それ以外のユーザーが利用で きるかどうかは、 /etc/at.allow ファイルまたは /etc/at.deny によって決まります。 詳しくは at.allow(5) を参照してください。
オプション
-V 標準エラー出力にバージョン番号を表示して、 正常終了します。 -q queue 指定されたキューを使用します。 キューの指定には英字 1 文字を使います。 有効な文字 は a から z と A から Z です。 キュー a は at に対するデフォルトであり、 キュー b は batch に対するデフォルトです。 これ以降の文字を使ったキューは、 それだけ nice 値が大きいものとして実行されます。 特別なキューとして "=" があり、 現在実行中の キューを示すものとして、 この文字が予約されています。 英大文字を指定してジョブが登録された場合、 そのジョブは指定時刻に batch を使って実行される ものとして扱われます。 指定時刻になると、 負荷平均に関するバッチ処理ルールが適用されます。 atq に対して特定のキューが指定されると、 そのキュー内にある未実行ジョブを表示するだけで す。 -m ジョブが終了する際に、 出力が何もなくても、 ユーザーに対してメールを送信します。 -M ユーザーにメールを送信しません。 -u username 現在ユーザーではなく username にメールを送信します。 -f file ジョブを標準入力からではなく file から読み込みます。 -t time 時刻 time にジョブを実行します。 書式は [[CC]YY]MMDDhhmm[.ss] とします。 -l atq のエイリアスです。 -r atrm のエイリアスです。 -d atrm のエイリアスです。 -b batch のエイリアスです。 -v ジョブを読み込む前に、 ジョブが実行される時間を表示します。 表示される時間は "Thu Feb 20 14:50:00 1997" といった書式です。 -c コマンドラインから指定されたジョブの内容を標準出力に表示します。 -o fmt ジョブ一覧に対して strftime のような時間書式を用います。
ファイル
/var/spool/atjobs /var/spool/atspool /proc/loadavg /var/run/utmp /etc/at.allow /etc/at.deny
関連項目
at.allow(5), at.deny(5), atd(8), cron(1), nice(1), sh(1), umask(2).
バグ
Linux において batch が正しく処理されるためには、 /proc にマウントされた proc タイプのディ レクトリが存在している必要があります。 ファイル /var/run/utmp が利用できないか壊れている場合、 あるいは at の実行時にユーザーがロ グインしていない場合は、 環境変数 LOGNAME に示される userid のユーザーにメールが送信されま す。 これが未定義かあるいは空の場合は、 現在の userid に対して処理が行われます。 現在実装されている At や batch では、 ユーザー間でのリソース競合時には適していません。 利 用環境においてこれが発生する場合は、nqs のような別のバッチシステムの利用が必要かもしれませ ん。
著者
Thomas Koenig がほとんどを作りました。 2009-11-14 AT(1)