今天介绍一个简单的命令:watch,但是在实际工作中我却觉得很有用。有时候会有些奇效。

watch命令可以以全屏的方式动态显示命令或程序的执行情况。

简单来说,就相当于开了个窗口,每隔几秒就重新执行下这个命令,输出结果。

语法

watch [选项] [命令]

参数

参数 | 释义
—|—
-n | 命令执行的间隔时间,默认2秒
-d | 高亮显示结果变动
-t | 关闭watch顶部窗口的时间间隔、命令

案例

1、监听文件,熵池问题

曾经遇到个数据源连接报错的问题,报错信息The error occurred while executing a query

跟踪了下,发现是Oracle 11G 相关的jdbc驱动程序可能会出现这个bug。

感兴趣的同学可以看我博客的文章,详细的不说了,文章地址:https://www.cnblogs.com/yaomaomao/p/10954468.html。

其中重要的两个指标:

 cat /proc/sys/kernel/random/entropy_avail
 cat /proc/sys/kernel/random/poolsize

entropy_avail如果低于500,poolsize低于3000,可能就会出现上述的问题。

但是每次都要一直输入cat命令查看,很麻烦啊。不能跟top什么的一样,自动监察,输出命令结果吗?

可以的,watch就起到这个作用了。

命令如下

watch cat /proc/sys/kernel/random/entropy_avail
watch cat /proc/sys/kernel/random/poolsize

这样,就能一直看到命令结果的变化了。

2、监听网络

监听文件用的是watch的默认参数,我们再用watch来监听网络看看。

watch -n 1 -d netstat -ant
# -n指定每秒执行,-d高亮显示变化结果

结果:
在这里插入图片描述