watch 命令不是一般的有用

JAVA乐园

共 1482字,需浏览 3分钟

 ·

2022-01-02 14:42

先分享两个对软件开发非常不错的工具

  • 画图工具 https://app.diagrams.net

  • jvm 内存分享工具 http://www.32r.com/soft/73878.html


watch 可以监测一个命令的运行结果,来监测你想要的一切命令的结果变化

  • 常见命令参数

Usage: watch [-dhntv] [--differences[=cumulative]] [--help] [--interval=] [--no-title] [--version] 
  -d, --differences[=cumulative]        highlight changes between updates
                (cumulative means highlighting is cumulative)
  -h, --help                            print a summary of the options
  -n, --interval=              seconds to wait between updates
  -v, --version                         print the version number
  -t, --no-title                        turns off showing the header                    turns off showing the header
  • 常见命令展示

每隔一秒高亮显示网络链接数的变化情况

watch -n 1 -d netstat -ant 【-n 设置间隔,-d,difference,高亮显示不同】
watch -d 'ls /home/omd'    【-d 高亮显示】
watch -t 'ls /home/omd'    【-t会关闭watch命令在顶部的时间间隔】
说明: 切换终端:Ctrl+x     退出watch:Ctrl+g

每隔一秒高亮显示http链接数的变化情况

watch -n 1 -d 'pstree|grep http'

实时查看模拟攻击客户机建立起来的连接数

watch -n 1 -d 'netstat -an | grep "21" | egrep "192.168.25.100"| wc -l'

监测当前目录中 scf' 的文件的变化

watch -d 'ls -l|grep scf'

10秒一次输出系统的平均负载

watch -n 1 -d "uptime"


实际应用场景

在排查线上系统性能瓶颈时,监控 jvm 的堆栈就可以使用 watch 命令。

  • jps 命令查下出 java 服务的进程号

jps

如图

  • jstack 监控 jvm 的堆栈信息

虽然可以使用 jstack 可以监控 jvm 的线程堆栈信息,但是不能动态监控;这时 watch 命令就可以派上用场了

  • watch 实时监控 jvm 线程堆栈

watch -n 1 "jstack 13671"

另外,还可以使用 grep 命令进行内容刷选

watch -n 1 "jstack 13671 | grep RUNNING"

喜欢,在看

浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报