1. 功能
lsof list open files, 列出被进程所使用的文件名称。
2. 基础语法
3. 参数含义
参数 | 含义 |
---|---|
-a | 过滤出多个选项要同时满足的文件 |
-U | 仅列出UNIX-like系统的socket文件类型。 |
-u | 指定用户,比如-u atiaisi,会把用户atiaisi相关的进程使用的文件列出来。 |
-i | 过滤ipv4/6文件,可选值:[46][proto][@host|addr][:svc_list|port_list] |
-t | 只列出PID列 |
4. lsof使用
4.1 查看哪些进程在占用目录
lsof /data/1
输出字段含义
字段名 | 字段含义 |
---|---|
PID | 占用目录的进程对应的PID |
TYPE | 文件类型: DIR: 目录 REG: 文件 |
NODE | 占用文件的索引id,也可以通过命令stat -c '%i' {file} 查看文件索引id。 |
NAME | 占用目录的进程对应的文件名称 |
4.2 查看指定用户打开的文件
lsof -u admin | head -n 20
4.3 查看指定端口上打开的文件
lsof -i:3306,22
4.4 列出所有ipv4/6网络文件
列出所有IPV4网络文件
lsof -i 4
列出所有IPV6网络文件
lsof -i 6
列出所有UDP协议的网络文件
lsof -i UDP
列出所有TCP协议的网络文件
lsof -i TCP
列出指定主机上打开的网络文件
lsof -i@127.0.0.1
列出指定服务打开的网络文件
lsof -i:mysql,ssh
4.5 列出指定进程上打开的文件
lsof -p 2159,3456
4.6 只列出过滤出的文件所属进程的pid
使用-t选项和其他选项结合,比如,过滤出指定端口所属的PID号
lsof -t -i:3306,22
4.7 列出端口号是3306的进程打开的并且协议类型为IPV6的文件
-a 选项表示要同时满足
lsof -a -i:3306 -i 6