天天看點

linux at 指令

在指定的時間運作作業

有時候,需要隻運作作業一次而不是定期運作。為此,應該使用 at 指令。要運作的指令是從 -f 選項指定的檔案讀取的,如果沒有使用 -f,那麼從 stdin 讀取。-m 選項向使用者發送郵件,即使指令沒有 stdout。-v 選項顯示運作作業的時間。這個時間也顯示在輸出中。

清單 5 給出一個運作 mycrontest.sh 腳本的示例。清單 6 顯示在運作作業之後通過郵件發送給使用者的輸出。注意,這裡的輸出比對應的 cron 作業輸出要簡單一些。

清單 5. 使用 at 指令

[ian@lyrebird ~]$ at -f mycrontest.sh -v 10:25

Sat Jul  7 10:25:00 2007

job 5 at Sat Jul  7 10:25:00 2007

清單 6. 來自 at 的作業輸出

From [email][email protected][/email]  Sat Jul  7 10:25:00 2007

Date: Sat, 7 Jul 2007 10:25:00 -0400

From: Ian Shields <[email][email protected][/email]>

Subject: Output from your job        5

To: [email][email protected][/email]

It is now 10:25:00 on Saturday

時間的設定可以非常複雜。清單 7 給出幾個示例。參見 at 的手冊頁、/usr/share/doc/at/timespec 檔案或 /usr/share/doc/at-3.1.10/timespec 這樣的檔案(這個示例中的 3.1.10 是 at 包的版本号)。

清單 7. at 指令使用的時間值

[ian@lyrebird ~]$ at -f mycrontest.sh  10pm tomorrow

job 14 at Sun Jul  8 22:00:00 2007

[ian@lyrebird ~]$ at -f mycrontest.sh 2:00 tuesday

job 15 at Tue Jul 10 02:00:00 2007

[ian@lyrebird ~]$ at -f mycrontest.sh 2:00 july 11

job 16 at Wed Jul 11 02:00:00 2007

[ian@lyrebird ~]$ at -f mycrontest.sh 2:00 next week

job 17 at Sat Jul 14 02:00:00 2007

at 指令還有一個 -q 選項。随着隊列的增長,作業的 nice 值也會增長。 還有一個 batch 指令,它與 at 指令相似,但是作業隻在系統負載足夠低時運作。這些特性的細節參見手冊頁。

清單 8. 顯示排程的作業

ian@lyrebird ~]$ atq

16      Wed Jul 11 02:00:00 2007 a ian

17      Sat Jul 14 02:00:00 2007 a ian

14      Sun Jul  8 22:00:00 2007 a ian

15      Tue Jul 10 02:00:00 2007 a ian

删除排程的作業

可以使用 atrm 指令加作業号删除用 at 指令排程的一個或多個作業。多個作業應該用空白分隔

上一篇: Linux指令
下一篇: linux 指令

繼續閱讀