Linux命令行監(jiān)控程序
引言
使用watch定期執(zhí)行命令,并且命令的結(jié)果顯示在終端窗口中。 當(dāng)您需要重復(fù)執(zhí)行命令并觀察命令輸出隨時(shí)間的變化時(shí),此功能非常有用。
例如,可以使用watch命令來(lái)監(jiān)視系統(tǒng)正常運(yùn)行時(shí)間或磁盤(pán)使用情況。
watch程序是procps(或procps-ng)軟件包的一部分,幾乎所有Linux發(fā)行版都預(yù)裝了該軟件包。
用法
watch [選項(xiàng)] 命令
為了最好地說(shuō)明watch命令是如何工作的,讓我們運(yùn)行date命令:
watch date
正如上圖所示,watch命令將臨時(shí)清除所有終端內(nèi)容,并開(kāi)始定期運(yùn)行提供的命令。
在不帶任何選項(xiàng)的情況下使用時(shí),watch將每?jī)擅脒\(yùn)行一次指定的命令。
在屏幕標(biāo)題的左上角,您可以看到監(jiān)視更新間隔和執(zhí)行的命令(每2.0s:date),而在右上角的監(jiān)視顯示當(dāng)前時(shí)間和日期。
如果您想關(guān)閉標(biāo)題,請(qǐng)使用-t(--no-title)選項(xiàng)。
指定命令的輸出顯示在屏幕上,并每?jī)擅攵ㄆ诟乱淮?。要退出watch命令,只需按Ctrl+C組合鍵。
你還可以使用-g(--chgexit)選項(xiàng)將watch設(shè)置為在命令的輸出更改時(shí)退出。
下面我們介紹最常用的watch命令選項(xiàng)。
修改監(jiān)控時(shí)間間隔
如果兩秒的默認(rèn)更新間隔不合適怎么辦?-n(--interval)選項(xiàng)后跟所需的秒數(shù),允許你更改更新之間的時(shí)間間隔:
watch -n 間隔秒數(shù) 命令
例如每5秒刷新一次,監(jiān)控磁盤(pán)使用情況:
watch -n 5 df -h
高亮顯示差異內(nèi)容
-d(--Difference)選項(xiàng)將使Watch突出顯示連續(xù)更新之間的更改。
watch -d 命令
假設(shè)你想要通過(guò)運(yùn)行uptime命令監(jiān)視系統(tǒng)正常運(yùn)行時(shí)間,并突出顯示更改。輸入以下命令:
watch -d uptime
可見(jiàn)輸出差異部分都被高亮顯示了。
watch 命令中使用管道符
如果要執(zhí)行包含管道的命令,則需要用單引號(hào)或雙引號(hào)將該命令引起來(lái)。
如果沒(méi)有包含完整的命令,watch將只運(yùn)行第一個(gè)命令,然后通過(guò)管道將其輸出傳遞給管道中的下一個(gè)命令。
正確用法:
watch 'COMMAND_1 | COMMAND_2'
例如,以下命令將使用netstat和grep實(shí)用程序的組合監(jiān)視端口80上的活動(dòng)連接數(shù):
watch "netstat -anp | grep -c ':80\b.*LISTEN'"
寫(xiě)在最后
到這兒,你應(yīng)該已經(jīng)很好地理解了如何使用Linux watch命令。
選項(xiàng)并不多,功能也很單一,相信在你的管道操作中,會(huì)有它的一席之地。
Happy coding :-)