在Linux服務(wù)器中定期運(yùn)行一個(gè)命令或進(jìn)程是很常用的操作。從清理腳本,到重復(fù)的文件刪除命令,再到自動(dòng)的定期升級(jí),所有的東西都可以配置成在Linux服務(wù)器中定期運(yùn)行。
通常,實(shí)現(xiàn)這一目標(biāo)的方法是配置Cron作業(yè),當(dāng)涉及到自動(dòng)化腳本和后臺(tái)作業(yè)時(shí),Cron作業(yè)非常方便。但是,如果你需要周期性地運(yùn)行一個(gè)命令或程序,并交互式地查看其輸出,即(幾乎)實(shí)時(shí)地查看;就不能使用Cron,因?yàn)樗鼘⑺械妮敵霰4娴饺罩疚募小?/p>
今天我們將學(xué)習(xí)watch命令,它可以讓我們周期性地運(yùn)行一個(gè)命令或程序,并顯示實(shí)時(shí)輸出。
使用watch命令的基本語(yǔ)法是。
$ watch command_name
這將使命令‘command_name’每2秒運(yùn)行一次,這是默認(rèn)的時(shí)間。
$ watch ps -ef
上面的命令會(huì)每2秒調(diào)用’ps -ef’(用于顯示正在運(yùn)行的進(jìn)程及其資源使用情況),這樣我們就可以定期看到最新的資源使用情況。
要指定定期運(yùn)行的時(shí)間間隔,請(qǐng)使用-n選項(xiàng)。
$ watch -n time_interval_in_seconds command
例如,要每隔1分鐘運(yùn)行一個(gè)Linux命令或程序,使用以下命令。
$ watch -n 60 ps -ef
這顯然會(huì)每隔1分鐘運(yùn)行一次’ps -ef’命令。
另一個(gè)有趣的選項(xiàng)是參數(shù)-d,它將在每次周期性運(yùn)行命令后突出顯示輸出的差異。例如,讓我們?cè)俅芜\(yùn)行ps命令,這次按內(nèi)存使用量的降序排列輸出,這樣我們就可以很容易地看到突出顯示的差異。
$ watch -d -n 5 ps aux –sort -%mem
如上圖所示,高亮顯示了ps命令當(dāng)前運(yùn)行中改變的值。請(qǐng)注意,這只會(huì)突出顯示兩個(gè)即時(shí)運(yùn)行之間的差異,而不是所有運(yùn)行之間的差異。
我們看到了簡(jiǎn)單的使用watch命令是如何讓我們?cè)?a href="http://www.xiayu04.cn/help/index.php/tag/22">Linux中周期性地運(yùn)行程序的。watch命令有更多的選項(xiàng),可以真正幫助用戶定制他或她的周期性運(yùn)行。可通過(guò)$ man watch查看更多選項(xiàng)。