at, batch, atq, atrm -
排隊、檢查或刪除以後要執行的作業。
at [-V] [-q
佇列] [-f
檔案]
[-mldbv]
時間 at -c 作業
[作業...]
atq [-V] [-q
佇列] [-v]
atrm [-V]
作業 [作業...]
batch [-V] [-q
佇列] [-f
檔案]
[-mv] [時間]
at 和
batch
從標準輸入或一個指定的檔案讀取命令,這些命令在以後某個時間用
/bin/sh 執行。
- at
- 在指定的時間執行命令。
- atq
- 列出使用者的等待執行的作業;在使用者是超級使用者的情況下,列出所有人的作業。
- atrm
- 刪除作業。
- batch
- 在系統負載水平允許的時候執行命令;換句話說,當平均負
載降到低於0.8,或降到了在
atrun
檔案中指定的期望值時執行。
譯註:atrun 檔案參見 atd
手冊頁。
At
允許相當複雜的時間指定,它擴充套件了
POSIX.2 標準。它接受
HH:MM
的時間式樣,用來指定在一天的某個時間執行一個作業。
(如果時間已經過了則假定為第二天。)你可以指定
midnight (午夜)、
noon (中午)
或
teatime
(下午4點),你可以用
AM
或
PM
字尾指定一天的上午或下午。你可以給出
month-name day 加上可選
的年份的式樣用來指定執行
at 的日期,或者給出
MMDDYY 、
MM/DD/YY 或
DD.MM.YY
式樣用來指定執行 at
的日期。日期的指定
必須跟在時間指定的後面。你也可以給出象
now + 計數 時間單位
的式樣,這裡的時間單位可以是
minutes 、
hours 、
days 或
weeks,
你可以給時間加一個
today 字尾來指定
at
今天執行作業,可以
給時間加一個
tomorrow
字尾來指定
at
明天執行作業。
例如,要在三天以後的下午
4 點執行一個作業,at
時間引數可以 指定為
4pm + 3 days。
要在7月31日上午10:00執行一個作業,
at 時間引數可以指定為
10am Jul 31,
要在明天上午1點執行一個
作業,at
時間引數可以指定為
1am tomorrow。
時間指定的精確的定義可以在
/usr/share/doc/at/timespec 找到。
對於
at 和
batch
兩者,從標準輸入或以
-f 選項指定的檔案中
讀取命令並執行之。工作路徑、環境變數(除了
TERM、 DISPLAY 和
_)、 umask
從所期望的時間起保持不變。從一個從執行
su(1) 命令得到的 shell
中呼叫的
at - 或
batch -
命令將保持當前的
userid。
使用者的命令的標準錯誤輸出和標準輸出將用郵件發給使用者。傳送郵件
使用命令
/usr/sbin/sendmail。
從一個從執行
su(1)命令得到的 shell
中執行了
at ,登入 shell
的所有者將接到郵件。
譯註:userid
是使用者標識的意思。umask
是與每個程序相關聯的檔案
方式建立遮蔽字。
超級使用者可以在任何情況下使用這些命令。對於其他使用者,使用
at 的許可權由檔案
/etc/at.allow 和
/etc/at.deny 確定。
如果檔案
/etc/at.allow
存在,在其中提及的使用者名稱被允許使用
at 命令。
如果
/etc/at.allow 不存在,而
/etc/at.deny 存在,所有在
/etc/at.deny
中未提及的使用者被允許使用
at 命令。
如果兩者均不存在,只用超級使用者可以使用
at 命令。
一個空的
/etc/at.deny
意味著所有使用者均被允許使用這些命令,
這是預設的配置。
- -V
- 在標準錯誤上輸出版本號。
- -q queue
- 使用指定的佇列。一個佇列用一個字母標定,有效的的佇列標定的
範圍是從a到z和從A到Z。at
的預設佇列是 a,batch
的預設佇列是
b。佇列的字母順序越高,則佇列執行時越謙讓(執行級別越低)。
指定的佇列 "="
保留給當前執行的作業所在的佇列。
如果一個作業被提交到一個以大寫字母標定的佇列,則與提交到
batch 同樣對待。如果給
atq
指定一個佇列,則只顯示在此指定
佇列中的作業。
- -m
- 當作業完成時即使沒有輸出也給使用者發郵件。
- -f file
- 從檔案而不是標準輸入中讀取作業資訊。
- -l
- 是 atq 的別名。
- -d
- 是 atrm 的別名。
- -v
- 對於 atq,
顯示完整的在佇列中未被刪除的作業,對於其他
命令,顯示作業將要執行的時間。
顯示的時間的格式類似於"1997-02-20
14:50",但如果設定了
POSIXLY_CORRECT
環境變數之後,格式類似於"Thu
Feb 20 14:50:00 1996"。
- -c
- 連線命令列中列出的作業並輸出到標準輸出。
/var/spool/at
/var/spool/at/spool
/proc/loadavg
/var/run/utmp
/etc/at.allow
/etc/at.deny
cron(1),
nice(1),
sh(1),
umask(2),
atd(8)
在 Linux
下正確的批處理操作依賴於掛裝在/proc
上的一個
proc-
型別的目錄的存在。
如果檔案
/var/run/utmp
不可獲得或已經損壞,或者在
at 所期
待的時間使用者沒有登入,向在環境變數
LOGNAME 中找到的 userid
傳送郵件。如果
LOGNAME未定義或是空的,假定為當前的
userid。
當前實現的
at 和
batch
在使用者競爭資源的時候是不適合的。
如果你的站點是這種情況,你可以考慮其他的批處理系統,
例如
nqs。
AT 大部分是由Thomas
Koenig寫的。
[email protected].
mhss <[email protected]>
主要參照了:
Linux實用大全 /
陳向陽,方漢 編著.
-北京:
科學出版社,1998.8
2000/10/27
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh