在Linux服務器中定期運行一個命令或進程是很常用的操作。從清理腳本,到重復的文件刪除命令,再到自動的定期升級,所有的東西都可以配置成在Linux服務器中定期運行。
通常,實現(xiàn)這一目標的方法是配置Cron作業(yè),當涉及到自動化腳本和后臺作業(yè)時,Cron作業(yè)非常方便。但是,如果你需要周期性地運行一個命令或程序,并交互式地查看其輸出,即(幾乎)實時地查看;就不能使用Cron,因為它將所有的輸出保存到日志文件中。
今天我們將學習watch命令,它可以讓我們周期性地運行一個命令或程序,并顯示實時輸出。
使用watch命令的基本語法是。
$ watch command_name
這將使命令‘command_name’每2秒運行一次,這是默認的時間。
$ watch ps -ef
上面的命令會每2秒調(diào)用’ps -ef’(用于顯示正在運行的進程及其資源使用情況),這樣我們就可以定期看到最新的資源使用情況。
要指定定期運行的時間間隔,請使用-n選項。
$ watch -n time_interval_in_seconds command
例如,要每隔1分鐘運行一個Linux命令或程序,使用以下命令。
$ watch -n 60 ps -ef
這顯然會每隔1分鐘運行一次’ps -ef’命令。
另一個有趣的選項是參數(shù)-d,它將在每次周期性運行命令后突出顯示輸出的差異。例如,讓我們再次運行ps命令,這次按內(nèi)存使用量的降序排列輸出,這樣我們就可以很容易地看到突出顯示的差異。
$ watch -d -n 5 ps aux –sort -%mem
如上圖所示,高亮顯示了ps命令當前運行中改變的值。請注意,這只會突出顯示兩個即時運行之間的差異,而不是所有運行之間的差異。
我們看到了簡單的使用watch命令是如何讓我們在Linux中周期性地運行程序的。watch命令有更多的選項,可以真正幫助用戶定制他或她的周期性運行。可通過$ man watch查看更多選項。