簡介
watch
命令會以固定間隔(默認每 2 秒)重復運行給定命令,并在終端上顯示其輸出。它非常適合監控不斷變化的輸出,例如磁盤使用情況、內存使用情況、文件更改、服務狀態等。
基礎語法
watch [options] command
常用選項
-
-n, --interval
:允許指定輸出更新之間的間隔,單位:秒 -
-d, --differences
:突出顯示輸出更新之間的差異 -
-g, --chgexit
:當用戶定義命令的輸出發生變化時退出監視命令 -
-t, --no-title
:刪除顯示間隔、命令和當前時間和日期的標題 -
-b, --beep
:如果命令因錯誤退出,則播放聲音警報(蜂鳴聲) -
-p, --precise
:嘗試在--interval
選項定義的精確秒數后運行命令 -
-e, --errexit
:出現錯誤時停止輸出更新并在按下按鍵后退出命令 -
-c, --color
:解釋ANSI
顏色和樣式序列 -
-x, --exec
:將用戶定義的命令傳遞給exec
,減少額外引用的需要 -
-w, --no-linewrap
:關閉換行并截斷長行 -
-h, --help
:顯示幫助文本并退出 -
-v, --version
:顯示版本信息并退出
示例用法
每 5 秒顯示一次系統時間和日期
watch -n 5 date
以默認的 2 秒間隔顯示系統日期和時間,并突出顯示更改
watch -d date
變更時退出
watch -g free
隱藏監視命令標頭
watch -t date
用于用戶自定義的復雜命令參數
- 使用
\
來換行
watch -n 5 \
echo "watch command example output"
- 使用引號括起來
watch -n 5 'echo "watch command example output"'
監控內存使用情況
watch -n 1 free -h
檢查進程是否正在運行
watch pgrep nginx
觀察 CPU 消耗最高的 5 個進程
watch -n 1 "ps -eo pid,comm,%cpu --sort=-%cpu | head -n 6"
監控文件夾文件數
watch "ls | wc -l"
突出顯示更改
watch -d ifconfig
與 grep 結合以獲得過濾輸出
watch "ps aux | grep nginx"
使用顏色使其更具可讀性
watch -c "ls --color=always"
監控日志
watch tail -n 20 /var/log/syslog
對于動態日志,tail -f
比 watch
更合適
觀察CPU動態頻率
watch -n1 'grep "^cpu MHz" /proc/cpuinfo | sort -nrk4'