一、简介
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
点击屏幕右上方分享给好友
让阅读分享成为一种习惯
领取专属 10元无门槛券
私享最新 技术干货