简介
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'