unix at命令詳解
a t命令允許使用者向c r o n守護程式提交作業,使其在稍後的時間執行。這裡稍後的時間可能是指1 0 m i n以後,也可能是指幾天以後。如果你希望在一個月或更長的時間以後執行,最好還是使用c r o n t a b檔案。一旦一個作業被提交, a t命令將會保留所有當前的環境變數,包括路徑,不象 c r o n t a b,只提供預設的環境。該作業的所有輸出都將以電子郵件的形式傳送給使用者,除非你對其輸出進行了重定向,絕大多數情況下是重定向到某個檔案中。和c r o n t a b一樣,根使用者可以透過/ e t c目錄下的a t . a l l o w和a t . d e n y檔案來控制哪些使用者可以 使用a t命令,哪些使用者不行。不過一般來說,對 a t命令的使用不如對c r o n t a b的使用限制那麼嚴格。
a t命令的基本形式為:
at [-f script] [-m -l -r] [time] [date]
其中,
-f script. 是所要提交的指令碼或命令。
-l 列出當前所有等待執行的作業。a t q命令具有相同的作用。
-r 清除作業。為了清除某個作業,還要提供相應的作業標識( I D);有些U N I X變體只接受a t r m作為清除命令。
-m 作業完成後給使用者發郵件。
time at命令的時間格式非常靈活;可以是 H、H H . H H M M、H H : M M或H : M,其中H和M分別是小時和分鐘。還可以使用a . m .或p . m .。
date 日期格式可以是月份數或日期數,而且a t命令還能夠識別諸如t o d a y、t o m o r r o w這樣的詞。
使用at命令提交命令或指令碼:
使用a t命令提交作業有幾種不同的形式,可以透過命令列方式,也可以使用 a t命令提示符。一般來說在提交若干行的系統命令時,我使用 a t命令提示符方式,而在提交s h e l l指令碼時,使用命令列方式。
如果你想提交若干行的命令,可以在a t命令後面跟上日期/時間並回車。然後就進入了a t命令提示符,這時只需逐條輸入相應的命令,然後按‘ < C T R L - D >’退出。下面給出一個例子:
at 21:00
at>find / –name “passwd” –print
at>
warning:commands will be executed using /bin/sh
job 1 at 2011-08-03 21:10
其中,< E O T >就是< C T R L - D >。在2 1 : 1 0系統將執行一個簡單的 f i n d命令。你應當已經注
意到,我所提交的作業被分配了一個唯一標識 job 1。該命令在完成以後會將全部結果以郵件
的形式傳送給我。
下面就是我從這個郵件中擷取的一部分:
Subject:Output from your job 1
/etc/passwd
/etc/pam.d/passwd
/etc/uucp/passwd
/tmp/passwd
/root/passwd
/usr/bin/passwd
/usr/doc/uucp-1.06.1/sample/passwd
下面這些日期/時間格式都是a t命令可以接受的:
At 6.45am May12
At 11.10pm
At now + 1 hour
At 9am tomorrow
At 15:00 May 24
At now +10 minutes – this time specification is my own favourite.
如果希望向a t命令提交一個s h e l l指令碼,使用其命令列方式即可。在提交指令碼時使用- f選項。
at 3.00pm tomorrow –f /app/proc/create.sh
warning:commands will be executed using /bin/sh
job 8 at 2011-08-03 15:00
在上面的例子中,一個叫做create.sh的指令碼將在明天下午3 : 0 0執行。
還可以使用e c h o命令向a t命令提交作業:
$ echo find /etc -name "passwd" -print | at now +1 min
3.3.2 列出所提交的作業
一個作業被提交後,可以使用at -l命令來列出所有的作業:
zjtst1-bg-proc%at -l
2 2011-08-03 16:00 a proc
其中,第一行是作業標識,後面是作業執行的日期 /時間。最後一列a代表a t。還可以使用
a t q命令來完成同樣的功能,它是 a t命令的一個連結。當提交一個作業後,它就被複製到
/ v a r / s p o o l / cron/atjobs目錄中,在裡面會看到以任務ID命令的檔案,透過cat可以檢視到
具體的檔案內容,從而獲取at任務具體執行的指令碼或者命令。
清除一個作業
清除作業的命令格式為:
atrm [job no] 或at -r [job no]
要清除某個作業,首先要執行at -l命令,以獲取相應的作業標識,然後對該作業標識使用
at -r命令,清除該作業。
zjtst1-bg-proc%at -l
2 2011-08-03 16:00 a proc
3 2011-08-03 17:00 a proc
zjtst1-bg-proc%atrm job 2
zjtst1-bg-proc%at -l
3 2011-08-03 17:00 a proc
zjtst1-bg-proc%at -r job 3
zjtst1-bg-proc%at -l
zjtst1-bg-proc%
有些系統使用at-r [job no]命令清除作業。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22418990/viewspace-751204/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- UNIX命令詳解(轉)
- UNix下chmod,chown命令 詳解
- linux/unix dd命令詳解Linux
- linux/unix crontab命令詳解Linux
- linux/unix uname命令詳解Linux
- linux/unix ulimit命令詳解LinuxMIT
- Linux/Unix重要find命令詳解Linux
- unix 命令詳解 - 轉自網路
- Unix檔案系統和pwd命令實現詳解
- Linux/Unix環境下的make命令詳解(轉)Linux
- Unix系統中的dot命令的使用方法詳解
- SCO UNIX上cpio命令詳細用法(轉)
- Linux 中 RPM 命令引數使用詳解 [其它Linux/unix]Linux
- Unix/Linux中nohup命令講解Linux
- UNIX VI命令
- 常用UNIX命令
- unix命令1
- Dockerfile 命令詳解Docker
- tcpdump命令詳解TCP
- getsebool命令詳解
- w命令詳解
- GCC命令詳解GC
- echo命令詳解
- brctl 命令詳解
- rsync命令詳解
- echo 命令詳解
- date 命令詳解
- free 命令詳解
- NPM命令詳解NPM
- docker命令詳解Docker
- ps命令詳解
- lsof命令詳解
- SVN命令詳解
- 命令模式 詳解模式
- Ethtool命令詳解
- find命令詳解
- test命令詳解
- awk命令詳解