lsof 它专门用来查看进程打开文件列表,不过,这里的“文件”不只有普通文件,还包括了目录、块设备、动态库、网络套接字等;

常用选项:

-p:指定进程pid(不能查看线程,这个要注意)

-i:查看网络连接信息(默认ipv4和ipv6的连接信息全部显示)

-i4:只查看ipv4的网络连接信息

-i4tcp:只查看ipv4,并且协议为tcp的网络连接信息(udp协议:-i4udp)

-i4:http:只查看ipv4,http服务的网络连接信息(服务名字以在/etc/services中定义的名字为准)


用法示例: 查看指定PID的进程打开的"文件"列表

[root@nginx ~]# lsof -p 123085
COMMAND    PID USER   FD   TYPE DEVICE  SIZE/OFF      NODE NAME
python  123085 root  cwd    DIR   0,42        17 100964861 /
python  123085 root  rtd    DIR   0,42        17 100964861 /
python  123085 root  txt    REG   0,42     28016 100965934 /usr/local/bin/python3.7
python  123085 root  mem    REG  253,0           100965934 /usr/local/bin/python3.7 (stat: No such file or directory)
python  123085 root  mem    REG  253,0            34827523 /usr/local/lib/python3.7/lib-dynload/_queue.cpython-37m-x86_64-linux-gnu.so (stat: No such file or directory)
python  123085 root  mem    REG  253,0            34827521 /usr/local/lib/python3.7/lib-dynload/_pickle.cpython-37m-x86_64-linux-gnu.so (stat: No such file or directory)
python  123085 root  mem    REG  253,0            34827532 /usr/local/lib/python3.7/lib-dynload/_struct.cpython-37m-x86_64-linux-gnu.so (stat: No such file or directory)
python  123085 root  mem    REG  253,0            34827586 /usr/local/lib/python3.7/lib-dynload/select.cpython-37m-x86_64-linux-gnu.so (stat: No such file or directory)
python  123085 root  mem    REG  253,0            36057719 /etc/localtime (path inode=1071)
python  123085 root  mem    REG  253,0            69214416 /usr/local/lib/libpython3.7m.so.1.0 (stat: No such file or directory)
python  123085 root  mem    REG  253,0            70590703 /lib/ld-musl-x86_64.so.1 (stat: No such file or directory)
python  123085 root    0u   CHR  136,0       0t0         3 /dev/pts/0
python  123085 root    1u   CHR  136,0       0t0         3 /dev/pts/0
python  123085 root    2u   CHR  136,0       0t0         3 /dev/pts/0
python  123085 root    3w   REG  253,0 792358912  69225846 /tmp/logtest.txt


用法示例: 查看端口是哪个进程打开的

#可以看到是21047端口是nc命令打开的
root@iZ2zej03jj9xfr5vcg40wbZ:~# lsof -i:21047
COMMAND  PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
nc      2766 jira    3u  IPv4 1082746650      0t0  TCP iZ2zej03jj9xfr5vcg40wbZ:21047->218.244.143.153:9877 (ESTABLISHED)

输出指标说明:

FD: 表示文件描述符号

w:表示以写的方式打开文件

u:表示以读写的方式打开文件

TYPE :表示文件类型

DIR:表示目录

REG:表示普通文件

sock:表示socket

NAME: 表示文件路径