Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all
名前
at, batch, atq, atrm - 後で実行するコマンドジョブをキューに入れたり、そのようなジョブの閲 覧・削除を行なう
書式
at [-V] [-q queue] [-f file] [-mMlv] timespec... at [-V] [-q queue] [-f file] [-mMkv] [-t time] at -c job [job...] atq [-V] [-q queue] at [-rd] job [job...] atrm [-V] job [job...] batch at -b
説明
at と batch は、標準入力や指定されたファイルからコマンドを読み取り、後で /bin/sh を使って 実行する。 at 指定された時刻にコマンドを実行する。 atq このコマンドを起動したユーザーの、実行されていないジョブを表 示する。スーパーユー ザーで起動すると、全てのユーザー のジョブを表示する。 (各ジョブごとに一行ずつ) 出 力される行の形式は、 ジョブ番号・日付・時間・キュー・ユーザー名 となる。 atrm ジョブ番号で識別されるジョブを削除する。 batch システムの負荷レベルが許可したときコマンドを実行する。 すなわち、負荷平均が 0.8 か、または atd で指定された値を下回るとコマンドを実行する。 at ではある程度複雑な TIME 指定ができる。これは 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, と指定することでコマンドをどのくらい後に実行す るか指定できる。 時間の単位には minutes, hours, days, weeks が使える。 さらにジョブを今日 実行したい場合は today を、明日実行したい場合は tomorrow を、それぞれ時刻の後に付ければ良 い。 例えば、今日から 3 日後の午後 4 時にジョブを実行する場合 at 4pm + 3 days, とし、 7 月 31 日の午前 10 時にジョブを実行するときは at 10am Jul 31 とし、明日の午前 1 時に実行するとき は at 1am tomorrow とする。 時間指定方法の定義は /usr/share/doc/at/timespec に書いてある。 at と batch はいずれも、コマンドを標準入力から、あるいは -f オプションで指定されたファイル から読み込んで、実行する。 作業ディレクトリ、環境 (環境変数 BASH_VERSINFO, DISPLAY, EUID, GROUPS, SHELLOPTS, TERM, UID, _ を除く)、 umask には、 at や batch が起動されたときのもの が保存される。 at は現在では setuid プログラムとして実装されているので、上記以外の環境変数、例えば LD_LIBRARY_PATH や LD_PRELOAD のようなものもエクスポートされない。これは将来変更されるかも しれない。回避策として、 これらの変数はジョブ内で明示的にセットする必要がある。 su(1) したあとのシェルから起動された at (または batch ) コマンドでは、カレントのユーザー ID が用いられる。 コマンドを実行した結果、標準エラー出力や標準出力が出ると、ユーザー は メールを受け取る。 メールの配送には /usr/sbin/sendmail が用いられる。 at が 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 ユーザーにメールしない。 -f file 標準入力でなく、 file からジョブを読み取る。 -t time ジョブを [[CC]YY]MMDDhhmm[.ss] の形式で指定した日時 (time) に実行する。 -l atq と同じ働きをする。 -r atrm と同じ働きをする。 -d atrm と同じ働きをする。 -b batch と同じ働きをする。 -v ジョブの読み込み前に、ジョブが実行される日時を表示する。 時刻は "Thu Feb 20 14:50:00 1997" の形式で表示される。 -c コマンドラインで指定したジョブを標準出力に表示する。
ファイル
/var/spool/cron/atjobs /var/spool/cron/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 形式のディレクトリが 必要である。 もし /etc/utmp が壊れて使えなかったり、 at がジョブを実行するときにユーザーがログインして なかったりすると、 環境変数 LOGNAME で指定されたユーザー ID にメールを送る。もしこの変数が 定義されて いなかったり、空だったりした場合、カレントのユーザー ID に送られる。 at と batch の現在の実装は、ユーザーが資源を取り合っているような状況下では 適当なものでは ない。このような場合は他の batch システム、たとえば nqs などを考えるべきだろう。
作者
at のほとんどの部分を書いたのは Thomas Koenig, ig25@rz.uni-karlsruhe.de である。 2009-11-14 AT(1)