linux watch 命令-定時(shí)執(zhí)行并監(jiān)視命令輸出

linux watch 命令-定時(shí)執(zhí)行并監(jiān)視命令輸出

linux watch 命令


watch 命令簡介

在 Linux 系統(tǒng)中,watch 是一個(gè)非常實(shí)用的命令行工具,它可以按照設(shè)定的時(shí)間間隔重復(fù)執(zhí)行某個(gè)命令,并將結(jié)果以全屏方式展示。這個(gè)工具非常適合用于持續(xù)監(jiān)控系統(tǒng)運(yùn)行狀態(tài)、文件內(nèi)容變化或其他需要實(shí)時(shí)觀察的場景。


watch 命令的基礎(chǔ)格式

watch [參數(shù)] 命令

常用參數(shù)說明

參數(shù) 功能描述 使用示例
`-n` 或 `–interval` 定義刷新間隔時(shí)間(單位為秒),默認(rèn)是2秒 `watch -n 5 date`
`-d` 或 `–differences` 突出顯示每次刷新之間的不同之處 `watch -d ls -l`
`-t` 或 `–no-title` 隱藏頂部的時(shí)間、命令和刷新頻率信息 `watch -t free -h`
`-b` 或 `–beep` 當(dāng)命令返回非零退出碼時(shí)發(fā)出提示音 `watch -b ping example.com`
`-e` 或 `–errexit` 如果命令出錯(cuò)則停止更新并退出 `watch -e ./check_status.sh`
`-g` 或 `–chgexit` 一旦命令輸出發(fā)生變化就終止執(zhí)行 `watch -g ls -l`
`-c` 或 `–color` 識別 ANSI 顏色和格式代碼 `watch -c ‘ls –color=always’`

具體應(yīng)用場景

實(shí)時(shí)查看內(nèi)存使用情況

watch -n 1 free -h

該命令每秒刷新一次內(nèi)存使用狀態(tài),其中 -h 參數(shù)使數(shù)據(jù)更直觀易懂。

跟蹤目錄內(nèi)文件變動

watch -d 'ls -l /var/log'

通過 -d 參數(shù)可以高亮顯示文件列表的變化,適合用來監(jiān)控日志目錄內(nèi)容更新。

監(jiān)控網(wǎng)絡(luò)連接狀態(tài)

watch -n 0.5 'netstat -tulnp | grep 80'

每隔0.5秒檢查一次 80 端口的連接狀況。

查看 CPU 溫度變化

watch -n 2 'sensors | grep Core'

每兩秒讀取一次 CPU 核心溫度信息。


進(jìn)階使用方法

同時(shí)執(zhí)行多個(gè)命令

watch 'date; echo; df -h'

利用分號分隔多個(gè)命令,echo 可以在輸出之間插入空行。

監(jiān)控特定用戶的進(jìn)程活動

watch 'ps -u username -o pid,cmd,%cpu,%mem --sort=-%cpu'

實(shí)時(shí)查看指定用戶正在運(yùn)行的進(jìn)程,并按 CPU 占用排序。

結(jié)合管道與重定向操作

watch 'dmesg | tail -20 > /tmp/dmesg.log; cat /tmp/dmesg.log'

雖然 watch 不直接支持管道,但可通過中間文件實(shí)現(xiàn)復(fù)雜操作。


使用建議

  1. 結(jié)束運(yùn)行:按下 Ctrl+C 即可終止 watch 進(jìn)程
  2. 刷新頻率控制:過于頻繁的刷新(如 0.1 秒)可能會增加系統(tǒng)負(fù)擔(dān)
  3. 命令長度限制:太長的命令會影響閱讀體驗(yàn),推薦封裝成腳本調(diào)用
  4. 顏色輸出問題:部分命令需添加額外參數(shù)才能保持色彩,例如 ls –color=always

類似工具對比

工具 主要特性 適用場合
watch 簡單直觀,屏幕整體刷新 持續(xù)觀察命令輸出變化
tail -f 動態(tài)追蹤文件新增內(nèi)容 日志文件增長監(jiān)測
tmux + 循環(huán)命令 具備多窗口管理能力 多種監(jiān)控任務(wù)并行處理
htop 圖形化交互式資源監(jiān)控 系統(tǒng)性能分析

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享