简介

watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了!

  1. [root@kuaicdn ~]# watch --help
  2. Usage:
  3. watch [options] command
  4. Options:
  5. -b, --beep beep if command has a non-zero exit
  6. -c, --color interpret ANSI color and style sequences
  7. -d, --differences[=<permanent>] ( 高亮显示变化的区域 )
  8. highlight changes between updates
  9. -e, --errexit exit if command has a non-zero exit
  10. -g, --chgexit exit when output from command changes
  11. -n, --interval <secs> seconds to wait between updates ( 更新之间的等待时间为秒, 单位为秒, 可以使用 0.1 秒) (默认时间为2 )
  12. -p, --precise attempt run command in precise intervals
  13. -t, --no-title turn off header
  14. -x, --exec pass command to exec instead of "sh -c"
  15. -h, --help display this help and exit
  16. -v, --version output version information and exit
  17. For more details see watch(1).

1.命令格式:

watch[参数][命令]

2.命令功能:

可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令

3.命令参数:

-n或—interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
-d或—differences 用-d或—differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
-t 或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。
-h, —help 查看帮助文档
4.使用实例:
实例1:
命令:每隔一秒高亮显示网络链接数的变化情况
watch -n 1 -d netstat -ant
说明:
其它操作:
切换终端: Ctrl+x
退出watch:Ctrl+g

实例2:每隔一秒高亮显示http链接数的变化情况
命令:
watch -n 1 -d ‘pstree|grep http’
说明:
每隔一秒高亮显示http链接数的变化情况。 后面接的命令若带有管道符,需要加’’将命令区域归整。

实例3:实时查看模拟攻击客户机建立起来的连接数
命令:
watch ‘netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l’
说明:

实例4:监测当前目录中 scf’ 的文件的变化
命令:
watch -d ‘ls -l|grep scf’
实例5:10秒一次输出系统的平均负载
命令:
watch -n 10 ‘cat /proc/loadavg’

示例

示例 1 查看实时连接数

  1. watch ss -s
  1. Every 2.0s: ss -s Fri Jan 21 10:32:34 2022
  2. Total: 251 (kernel 39117)
  3. TCP: 214 (estab 8, closed 194, orphaned 4, synrecv 0, timewait 0/0), ports 0
  4. Transport Total IP IPv6
  5. * 39117 - -
  6. RAW 0 0 0
  7. UDP 6 3 3
  8. TCP 20 17 3
  9. INET 26 20 6
  10. FRAG 0 0 0