watch命令


watch是一個非常實用的命令,基本所有的Linux發行版都帶有這個小工具,如同名字一樣,watch可以幫你監測一個命令的執行結果,省得你一遍遍的手動執行。在Linux下,watch是周期性的執行下個程式,並全螢幕顯示執行結果。你可以拿他來監測你想要的一切命令的結果變化,比如 tail 一個 log 檔案,ls 監測某個檔案的大小變化,看你的想象力了!

1.命令格式

watch[引數][命令]

2.命令功能

可以將命令的輸出結果輸出到標準輸出裝置,多用於週期性執行命令/定時執行命令

3.命令引數

  • -n--interval watch預設每2秒執行一下程式,可以用-n或-interval來指定間隔的時間。
  • -d或—differences 用-d或—differences 選項watch 會高亮顯示變化的區域。 而-d=cumulative選項會把變動過的地方(不管最近的那次有沒有變動)都高亮顯示出來。
  • -t 或-no-title 會關閉watch命令在頂部的時間間隔,命令,當前時間的輸出。
  • -h, —help 檢視幫助文件

4.使用範例

範例1:

命令:每隔一秒高亮顯示網路連結數的變化情況

watch -n 1 -d netstat -ant

輸出結果:

Every 1.0s: netstat -ant                                Mon Feb 27 20:49:38 2017

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp        0      0 192.168.0.210:22        192.168.0.5:51577       ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN

說明:其它操作:
切換終端: Ctrl+x
退出watchCtrl+g

範例2:每隔一秒高亮顯示http連結數的變化情況

命令:

watch -n 1 -d 'pstree|grep http'

說明:
每隔一秒高亮顯示http連結數的變化情況。 後面接的命令若帶有管道符,需要加’’將命令區域歸整。

範例3:實時檢視模擬攻擊客戶機建立起來的連線數

命令:

watch 'netstat -an | grep:21 | \ grep<客戶機的IP>| wc -l'

範例4:監測當前目錄中 scf’ 的檔案的變化

命令:

watch -d 'ls -l|grep scf'

範例5:10秒一次輸出系統的平均負載

命令:

watch -n 10 'cat /proc/loadavg'

輸出結果如下:

Every 10.0s: cat /proc/loadavg                          Mon Feb 27 20:54:45 2017

0.01 0.04 0.05 1/132 6335