简介
List Open Files的缩写。顾名思义,它用来查看系统中进程打开了哪些文件;因为Linux几乎所有的设备都可以看成是文件,所以lsof经常也可以用来查看管道,sockets的使用状态。列出当前系统打开文件的工具
仅持当前用户权限
常见用法
查看当前所有的活跃连接
lsof -i
仅能查看当前用户权限下的端口开放情况
查看指定进程打开的文件
lsof -p pid
查看指定端口被哪个进程占用
lsof -i :port
netstat -an |grep tcp 查看所有tcp连接包括LISTEN状态
netstat -an |grep ESTABLISHED 查看所有正在连接中的tcp连接
如果需要统计tcp连接每种状态的连接的数量
netstat -an | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
查找打开文件最多的信息如下:
lsof -n|awk ‘{print $2}’|sort|uniq -c |sort -nr|more
查看各个进程打开的文件数据量:
lsof -n |awk ‘{print $2} “ “ $3’|sort|uniq -c |sort -nr|more
lsof -u test 用户打开的文件
lsof -p pid 进程号为pid的进程打开的文件
lsof -c pro_name 进程名开头为pro_name打开的文件
lsof -i tcp 列出所有的tcp连接
lsof -i udp 列出所有的udp连接
lsof -i tcp:4600 列出占用4600端口的tcp连接
lsof -i udp:4600 列出占用4600端口的udp连接
lsof -i :4600 列出占用4600端口连接