做 Linux 运维的朋友,是不是都遇到过这样的场景:想盯着系统内存变化,一遍遍敲free -g;想看磁盘占用有没有飙升,反复输入df -h;监控端口连接数、进程状态,手动执行命令到手软……
重复操作又累又低效,其实 Linux 系统自带一个轻量神器,不用安装、不用配置,一行命令就能自动反复执行指令,实时展示结果变化,它就是watch 命令。
Ctrl+C就能退出。watch [选项] 要执行的命令-n+数字,可自定义间隔时间(单位:秒),监控高频变化指标调短间隔,低频指标拉长间隔,节省系统资源。#每1秒刷新一次内存使用情况watch -n 1 free -g#每5秒查看一次磁盘空间watch -n 5 df -h

#高亮显示系统负载变化watch -d uptime#监控文件变化,差异一目了然watch -d ls -l test.txt


3. -e:命令出错直接退出
当执行的命令报错时,watch 会自动停止刷新并退出,避免无效监控,适合脚本、定时任务场景。
#监控服务状态,出错立即退出watch -e systemctl status nginx

三、watch的8个实战场景
watch -n 2 uptime
2:内存 / CPU 使用率监控
精准盯紧系统资源,排查内存泄漏、CPU 飙升问题:
#内存监控watch -n 1 -d free -g#CPU使用率监控watch -n 1 -d "top -b -n 1 | grep Cpu"

3:磁盘空间 & IO 监控
#磁盘占用监控watch -n 5 -d df -h#磁盘IO性能监控watch -n 5 iostat -x 1

web 服务必备,监控 80/443 端口连接量,排查流量异常
#监控22端口TCP连接总数watch -n 1 -d "ss -an | grep :80 | wc -l"

5:进程存活状态监控
确保核心服务进程不退出,实时跟踪进程状态
#监控sshd进程,排除自身命令watch -n 2 "ps -ef | grep sshd | grep -v grep"

6:配置文件防篡改监控
等保检测、服务器安全审计,防止配置文件被恶意修改
#通过MD5值校验文件是否被修改watch -d md5sum /etc/nginx/nginx.conf

7:网卡流量实时监控
查看服务器网络进出流量,排查网络拥堵
#监控eth0网卡流量(需安装ifstat,yum -y install ifstat)watch -n 1 "ifstat ens33"

8:数据库连接数监控
实时查看 MySQL 连接数,避免连接满导致服务异常
watch -n 3 "mysql -u root -p12345678 -e 'show status like \"Threads_connected\"'"
四、watch高级组合命令
watch 最强的地方,是能和 Linux 管道、grep、awk 等命令结合,实现复杂的精细化监控,记住一个关键技巧:
1. 过滤核心指标,只看关心的内容
#只监控根分区磁盘占用率,根目录/dev/mapper/centos-rootwatch -n 5 -d "df -h | grep /dev/mapper/centos-root | awk '{print \$5}'"

2. 同时监控多个指标
#一次性查看CPU负载、内存、磁盘占用,根目录的磁盘名称 /dev/mapper/centos-rootwatch -n 3 "echo 'CPU负载:'; uptime | awk -F 'load average:' '{print \$2}'; echo '内存使用:'; free -h | grep Mem; echo '磁盘占用:'; df -h | grep /dev/mapper/centos-root"

3. 异常阈值告警
指标超出阈值自动高亮提示,无需一直盯着屏幕
#磁盘占用超过80%红色告警watch -n 10 "df -h / | awk 'NR==2{gsub(/%/,\"\");if(\$5>80) print \"\033[31m磁盘告警:占用率\"\$5\"%\033[0m\";else print \"磁盘正常: 占用率\"\$5\"%\"}'"

五、注意事项
很多人用 watch 踩坑,其实都是细节没注意,重点关注一下事项:
watch "top -b -n 1"nohupinotifywait比 watch 更高效很多人觉得 zabbix、prometheus 等专业监控工具才好用,但殊不知watch才是临时排障、快速监控的最优解:
系统自带,无需安装部署
资源占用极低,不影响业务
灵活组合命令,适配个性化需求
一行命令启动,即开即用
平时运维中排查服务器问题、监控临时指标,不用再搭建复杂监控系统,打开终端输入 watch 命令,效率直接拉满!Linux 运维没有那么难,用好这些自带的小工具,就能少加班、高效工作。
赶紧收藏这篇文章,下次遇到重复执行命令的场景,直接掏出 watch 神器!