watch 命令可以实时监测命令的运行结果
watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。直接在 watch 后面接你想运行的命令,watch 就会帮你重复运行,并把每次的结果都更新在屏幕上。 默认watch会以2s的间隔重复运行命令,你也可以用 -n 参数指定时间间隔. 还有一个实用的参数是-d,这样watch会帮你高亮显示变化的区域,这样更加一目了然了 Ctrl+c 就可以退出 可以拿他来监测你想要的一切命令的结果变化,比如tail一个 log 文件,ls监测某个文件的大小变化
语法: watch [options] command
常用选项:
- -d:高亮显示指令输出信息的不同之处
- -n:指定命令执行的时间间隔(默认单位为秒)
- -t:不显示标题
实例:
# watch -n 1 uptime //监测系统负载
# watch -t -d uptime
# watch -n 2 vmstat //监控服务器的状态值:cpu使用率、内存使用等
# watch -d -n 1 netstat -ntlp //监测网络连接
# watch -d 'ls -l | fgrep goface' //监测goface的文件
# watch -t -differences=cumulative uptime
# watch -n 1 -d 'pstree|grep http' //每隔一秒高亮显示http链接数的变化情况
# watch -n 1 "df -i;df" //监测磁盘inode和block数目变化情况
# watch -n 1 "netstat -n | awk '/^tcp/ {print $5}' | awk -F: '{print $1}' | sort | uniq -c| sort -rn | head" //监测每个IP的连接数
# watch -n 1 "netstat -an | awk '/^tcp/ {++sta[\$NF]} END {for(key in sta) print key, "\t", sta[key]}'" //监测每个连接状态的数量
# watch -d -n 1 'df -hT;ls -Alt -F /path' //看看哪些文件正在变!
解析:
在使用这条命令时你需要替换其中的 /path 部分,watch 是实时监控工具,
-d 参数会高亮显示变化的区域,-n 1 参数表示刷新间隔为 1 秒。
df -hT; ls -FlAt /path 运行了两条命令,df 是输出磁盘使用情况,ls -FlAt 则列出 /path 下面的所有文件。
ls -FlAt 的参数详解:
-F 在文件后面加一个文件符号表示文件类型,共有 */=>@| 这几种类型,* 表示可执行文件,/ 表示目录,= 表示接口( sockets) ,> 表示门, @ 表示符号链接, | 表示管道。
-l 以列表方式显示
-A 显示 . 和 ..
-t 根据时间排序文件
|