watch — 定時重複執行指令並顯示輸出
定時重複執行指令並即時更新顯示,用於持續監控系統狀態。
語法
watch [選項] 指令
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-n 秒數 |
設定刷新間隔(預設 2 秒,最小 0.1) | watch -n 1 df -h |
-d |
高亮顯示兩次執行間有變化的部分 | watch -d ls -la |
-t |
不顯示標頭列(時間、指令等) | watch -t date |
-p |
精確計時(每次執行後等待剛好 N 秒) | watch -p -n 1 date |
-e |
若指令回傳非 0 則暫停並等待按鍵 | watch -e my-check.sh |
-g |
若輸出改變則退出(適合腳本觸發) | watch -g df / |
使用範例
範例 1:每秒監控磁碟使用量
即時觀察磁碟使用量的變化,按 Ctrl+C 停止。
$ watch -n 1 df -h
Every 1.0s: df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 28G 42% /
範例 2:高亮顯示變化(監控程序)
使用 -d 讓有變化的部分以高亮(反白)顯示,一眼看出差異。
$ watch -d -n 2 ps aux --sort=-%cpu
(每 2 秒更新,有變化的數值高亮顯示)
範例 3:監控 CPU 和記憶體使用
每秒監控 CPU 和記憶體的即時狀態。
$ watch -n 1 'free -h && echo && ps aux --sort=-%cpu | head -6'
(每秒更新顯示記憶體狀態和 CPU 占用最高的程序)
範例 4:監控 HTTP 狀態
每 5 秒檢查一次服務是否回應,適合部署時的簡單監控。
$ watch -n 5 'curl -s -o /dev/null -w "%{http_code}" http://localhost/'
200