功能描述
使用lsof命令可以列出打开的文件,这个文件可以是一个普通文件、目录、块设备文件或字符设备文件。
命令语法
lsof [选项] [名称]
选项含义
选项
含义
-i
选择IPv4、IPv6文件
-b
避免内核模块
-o
偏移位
-a
使用AND选择
+f
文件系统
-f
文件名
-S
超时统计
-P
选择PID
-c
选择指定命令前缀的进程
-u
选择用户
-g
选择和打印进程组ID
-d
选择文件描述符
+D
列出目录树
-V
详细搜索
-l
列出UID号
-n
没有主机名
-N
选择NFS文件
-T
显示TCP/TPI信息
-v
列出版本信息
-U
选择UNIX套接字
-s
列出文件大小
-o
列出文件偏移量
-R
列出父PID
lsof命令输出字段描述
输出字段
字段描述
COMMAND
与进程相关的Linux命令
PID
进程标识号
USER
进程所有者
FD
文件描述符,应用程序通过文件描述符识别该文件
TYPE
与文件相关的节点的类型
DEVICE
包含设备号,并以逗号分隔
SIZE
文件的大小
NODE
索引节点(文件在磁盘上的标识)
NAME
挂载点和文件系统上驻留的文件的名称
例
列出所有进程打开的所有文件。
[[email protected] ~]# lsof
查找使用端口号22的进程
[[email protected] ~]# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 998 root 3u IPv4 19273 0t0 TCP *:ssh (LISTEN)
sshd 998 root 4u IPv6 19275 0t0 TCP *:ssh (LISTEN)
sshd 1316 root 3u IPv4 19683 0t0 TCP localhost.localdomain:ssh->192.168.6.1:57486 (ESTABLISHED)
查找用户root的所有网络连接
[[email protected] ~]# lsof -a -u root -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dhclient 807 root 6u IPv4 17200 0t0 UDP *:bootpc
dhclient 807 root 20u IPv4 17609 0t0 UDP *:45585
dhclient 807 root 21u IPv6 17610 0t0 UDP *:57144
sshd 998 root 3u IPv4 19273 0t0 TCP *:ssh (LISTEN)
sshd 998 root 4u IPv6 19275 0t0 TCP *:ssh (LISTEN)
httpd 1001 root 4u IPv6 19620 0t0 TCP *:http (LISTEN)
httpd 1001 root 6u IPv6 19628 0t0 TCP *:https (LISTEN)
master 1231 root 13u IPv4 19530 0t0 TCP localhost:smtp (LISTEN)
master 1231 root 14u IPv6 19531 0t0 TCP localhost:smtp (LISTEN)
sshd 1316 root 3u IPv4 19683 0t0 TCP localhost.localdomain:ssh->192.168.6.1:57486 (ESTABLISHED)
查找以httpd开头的进程打开的所有文件
[[email protected] ~]# lsof -c httpd
列出所有以描述符2打开的文件
[[email protected] ~]# lsof -d 2
列出所有网络连接
[[email protected] ~]# lsof -i
列出所有的TCP网络连接
[[email protected] ~]# lsof -i tcp
列出所有对应组群UID为0的进程
[[email protected] ~]# lsof -g 0
列出所有由PID为1对应的进程打开的文件
[[email protected] ~]# lsof -p 1
列出用户root打开的所有文件
[[email protected] ~]# lsof -u root
列出所有NFS(网络文件系统)文件
[[email protected] ~]# lsof -N
列出使用/lib64/ld-2.12.so文件的进程
[[email protected] ~]# lsof /lib64/ld-2.12.so
递归查找/usr/lib目录中所有打开的文件
[[email protected] ~]# lsof +D /usr/lib
循环列出文件,每秒钟重复显示一次。
[[email protected] ~]# lsof -r 1