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: 表示文件路径