有時,您需要反復運行命令或程序來監視系統的各個方面,如正在運行的進程、磁盤空間使用情況或用戶登錄情況。
Linux中的watch命令使您能夠自動執行這些任務,而無需手動一遍又一遍地運行它們。
使用此命令,您可以實時監視系統活動,如用戶登錄、網絡狀態、內存和CPU使用情況、磁盤空間等。
讓我們看看如何在Linux中使用watch命令。
什么是watch命令?
watch命令在Linux中反復運行指定的命令或程序,以固定時間間隔,并在終端中顯示其輸出。這使您能夠實時觀察輸出的變化。它會在每個時間間隔刷新輸出,覆蓋上一個輸出。默認情況下,該命令每兩秒重復一次,直到您使用Ctrl + C手動停止它。
watch命令的語法
watch命令的語法如下:
watch 選項 <命令>有各種可用于watch命令的命令行選項。如果您運行watch命令而沒有任何選項,它將每隔兩秒運行一次指定的命令。例如,以下命令將顯示ls命令的輸出:
watch ls -l ~/
輸出將顯示目錄列表中的更改,如果創建了文件、刪除了文件或文件大小發生變化,它將每兩秒刷新一次輸出。
使用watch命令每隔X秒運行一個命令
您可以更改watch命令的更新間隔。這意味著您可以告訴watch命令在重復命令之前等待X秒。要更改更新間隔,請使用-n選項,后面跟隨以秒為單位的時間間隔。
watch -n例如,要每隔5秒運行一次命令,請運行:
watch -n 5
突出顯示更新之間的變化
watch命令會在每次刷新時覆蓋其輸出。使用-d選項,您還可以突出顯示先前輸出和更新后輸出之間的變化。
watch -d
隱藏watch命令輸出中的標題
默認情況下,watch命令在每個輸出的頂部顯示一個標題,其中包含更新間隔、命令名稱以及系統的當前日期和時間。您可以使用-t選項從輸出中刪除標題:
watch -t
在錯誤時播放蜂鳴聲
當Linux進程完成運行時,它會返回一個退出代碼。按照慣例,成功時該值為0,非零表示錯誤。watch命令的-b選項會在命令返回非零退出代碼時播放蜂鳴聲。 假設您想要監視sshd.service,并在服務停止時收到通知,您可以使用:
watch -b sudo systemctl status sshd.service該命令將在服務停止時發出蜂鳴聲。當服務恢復運行時,蜂鳴聲將停止。要使用此功能,您必須在系統上安裝了beep軟件包。
在輸出更改時退出watch命令
您還可以告訴watch命令在命令的輸出更改時停止運行并退出。您可以使用-g選項來實現這一點。在等待輸出中的某些變化時,此選項非常有用。
一旦輸出發生變化,watch命令將停止。您可以將此用法與echo命令結合使用,以在屏幕上顯示消息。
例如,考慮一個場景,您正在等待一個文件出現在您的目錄中。以下命令將監視指定文件的目錄。
一旦出現,watch命令將停止運行,并且終端上將顯示消息"file arrived"。
watch -g "ls -l | grep filename" && echo "file arrived"
另一個有用的示例是在特定用戶登錄到系統時進行通知:
watch -g "who | grep username" && echo "username logged in"此命令將監視who命令的輸出,該命令列出已登錄的用戶。一旦用戶登錄,watch命令將停止并在終端上顯示消息。
類似地,您可以告訴watch命令在文件中進行更改時停止服務。請注意,在使用一系列命令的管道鏈時,您需要將整個命令括在引號內。
監視Linux系統中的活動
如果您發現自己反復執行相同的流程,請考慮使用watch命令來自動化它。這可以使您免于頻繁鍵入命令以查看發生了什么變化。
您還可以將watch命令與其他Linux命令一起使用,以監視系統資源和活動,并跟蹤文件或目錄中的更改。
審核編輯:劉清
-
Linux
+關注
關注
87文章
11292瀏覽量
209331 -
Linux系統
+關注
關注
4文章
593瀏覽量
27392
原文標題:如何使用 Linux 上的 watch 命令定期運行程序
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論