Linux下监控及诊断工具lsof的使用方法

一、简介

lsof是 linux 下的一个非常实用的系统级的监控、诊断工具。它可以用来列出被各种进程打开的文件信息,包括但不限于 pipes、sockets、directories、devices等等。因此,使用lsof你可以获取任何被打开文件的各种信息。必须以 root 用户的身份运行它才能够充分地发挥其功能。

对于测试工程师学习的意义:可以很好的监听、诊断问题。

二、安装

CentOS系统下安装lsof命令:yum install lsof,当看到成功标记,输入y,退出即安装完成。

查看8080端口号使用的进程: /usr/sbin/lsof –n –p –t –I :8080,显出出的就是进程号。

三、用法

1、监控打开的文件、设备

1)查看文件、设备被哪些进程占用 :lsof /dev/tty1

2)指定目录、挂载点,可以看到有哪些进程打开了其下的文件: lsof /data/

3)列出某个目录(挂载点 如 /home 也行)下被打开的文件:lsof +D /var/log/

4)列出被指定进程名打开的文件:lsof -c ssh -c init

5)监控进程(指定进程号,可以查看该进程打开的文件):lsof -p 2064

6)当你想要杀掉某个用户所有打开的文件、设备:kill -9`lsof -t -u lakshmanan`

2、监控网络

1)查看指定端口有哪些进程在使用(lsof -i 列出所有的打开的网络连接):lsof -i:22

2)列出被某个进程打开所有的网络文件:lsof -i -a-p 234或lsof -i -a -c ssh

3)列出所有 tcp、udp 连接:lsof -i tcp或lsof -i udp

4)列出所有 NFS 文件:lsof -N -u lakshmanan –a

3、监听用户查看指定用戶打开的文件(lsof -u ^lakshmanan 可以排除某用户): lsof -umessagebus4、监控应用程序

查看指定程序打开的文件: lsof -c firefox

1、

2、

3、

4、

5、其他技巧:

1)组合逻辑查询条件

2)只有多个查询条件都满足, 用 "-a" 参数,默认是 -o:lsof -a -c bash -u root

3)基于给定的参数延时多少秒重复执行lsof:lsof -u lakshmanan -c init -a -r5

6、使用 lsof 查找打开的文件。

http://www.ibm.com/developerworks/cn/aix/library/au-lsof.html

点击屏幕右上方分享给好友

让阅读分享成为一种习惯

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180815G11M2N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券