後で実行するコマンドジョブをキューに入れたり、そのようなジョブの閲覧・削除を行なう
job
[ job... ]
at -l
[ -V ]
[ -q
queue ]
atq
[ -V ]
[ -q
queue ]
at -d
[ -V ]
[ -q
queue ]
job
[ job... ]
at -r
[ -V ]
[ -q
queue ]
job
[ job... ]
atrm
[ -V ]
[ -q
queue ]
job
[ job... ]
batch
[ -V ]
[ -q
queue ]
[ -f
file ]
[ -mv ]
[ TIME ]
at
atq
atrm
batch
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/doc/at/timespec
に書いてある。
at と batch
は、ともに標準入力や
-f
オプションで指定されたファイルのコマンドを実行する。
作業ディレクトリ、環境 (環境変数
TERM , DISPLAY , _
を除く)、 umask には、
at や batch
が起動されたときのものが保存される。
su(1)
したあとのシェルから起動された
at
(または
batch )
コマンドでは、カレントのユーザー ID が用いられる。
コマンドを実行した結果、標準エラー出力や標準出力が出ると、ユーザー
はメールを受け取る。
メールの配送には
/usr/bin/sendmail
が用いられる。
at
が
su(1)
したあとのシェルから起動されたときは、ログインシェルのオーナーがメール
を受け取る。
スーパーユーザーは、どんな場合でも必ずこのコマンドを使うことができる。
他のユーザーのパーミッションは
/etc/at.allow
と
/etc/at.deny
で指定する。
/etc/at.allow
があれば、そこに書かれたユーザーのみが
at
を使える。
/etc/at.allow
がなければ
/etc/at.deny
をチェックし、そこに書かれて「いない」ユーザーすべてが
at
を使える。
もしどちらのファイルもなければ、スーパーユーザーのみ
at を使うことができる。
空の
/etc/at.deny
があるときは、全てのユーザーがこれらのコマンドを使うことができる。
この設定がデフォルトである。
-V
-q queue
-m
-f file
file
からジョブを読み取る。
-l
-d, -r
-v
-t time_arg
time_arg
オプションで指定した時間にジョブを実行させるようにする。
time_arg
の書式は
touch(1)
の
-t
time
オプションと同じでなければならない。
/var/spool/atjobs
/var/spool/atspool
/proc/loadavg
/var/run/utmp
/etc/at.allow
/etc/at.deny
/etc/utmp
が壊れて使えなかったり、
at
がジョブを実行するときにユーザーがログインしてなかったりすると、
環境変数
LOGNAME
で指定されたユーザー ID にメールを送る。もしこの変数が定義されて
いなかったり、空だったりした場合、カレントのユーザー ID に送られる。
at
と
batch
の現在の実装は、ユーザーが資源を取り合っているような状況下では
適当なものではない。このような場合は他のbatchシステム、たとえば
nqs
などを考えるべきだろう。