当前位置:首页>Linux>Linux 命令:学会watch,轻松实现系统状态实时监控

Linux 命令:学会watch,轻松实现系统状态实时监控

  • 2026-10-11 08:25:14
Linux 命令:学会watch,轻松实现系统状态实时监控

watch 命令能按设定的时间间隔自动执行命令并全屏刷新输出,非常适合需要持续观察变化、却不想反复手动执行的场景,是实时监控的利器。

⚙️ 基本用法

watch 的工作原理是:在给定的时间间隔后重复运行同一命令,并在终端原地刷新显示最新结果。

它的基本语法非常简单:

watch [选项] 命令

默认每2秒执行一次,顶部会显示执行间隔和当前时间。例如,实时监控磁盘使用情况:

watch df -h

此命令会每2秒自动刷新 df -h 的输出。

✨ 主要功能选项

watch 的真正威力在于它的几个实用选项:

  • 设定执行间隔 (-n): 自定义刷新频率,例如 watch -n 5 free -m 每5秒查看内存。-n 选项支持小数,-n 0.5 可实现每秒刷新2次。
  • 高亮差异 (-d): 这是它最亮眼的功能之一,它会将两次输出中发生变化的部分高亮显示,让你一眼就能发现哪里变了。示例:watch -d free -m。
  • 正确处理管道 (" "): 要监控带管道的命令,必须用引号将整个命令括起来。否则 watch 只会执行管道符前面的部分。例如,监控 Nginx 进程需写成:

    watch "ps aux | grep nginx"
  • 隐藏标题栏 (-t): 在分屏窗口(如 tmux)等小空间内,使用 -t 可以隐藏顶部包含间隔和时间的标题栏,让输出更紧凑。
  • 自动退出 (-g): 当命令的输出发生变化时,watch 会自动退出,常用于等待某个特定事件发生。例如,等待主机恢复网络连通: 注意: -g 对任何输出变化(包括空格和时间戳差异)都敏感,使用前请确保待监控命令的输出稳定。

    watch -g "ping -c1 192.168.1.50 | grep '1 received'"

💡 实用速查

  • 监控端口连接数: watch "ss -tn | grep ':443' | wc -l"
  • 监控CPU负载: watch -n 1 -d "cat /proc/loadavg"
  • 监控日志行数增长: watch "wc -l /var/log/syslog"

⚠️ 常见问题

  • 命令报错或无输出: 先在 watch 外部单独运行命令,确保其语法正确。此外,有些命令依赖当前Shell的环境变量(如别名),在 watch 的子进程中可能无法直接使用。
  • 意外的自动退出: 使用 -g 选项时,若监控的命令输出不稳定(如包含计时器),可能导致 watch 过早退出。务必先手动确认待监控命令的输出在无变化时是稳定的。

如果想深入体验,最佳实践是运行 watch -d -n 1 free -m,然后开启一个消耗内存的程序,亲眼看看高亮变化的效果。

最新文章

随机文章