Linux下 Lsof 命令分析

lsof 是 List Open File 的缩写, 它主要用来获取被进程打开文件的信息,我们都知道,在Linux中,一切皆文件,lsof命令可以查看所有已经打开了的文件,比如: 普通文件,目录,特殊的块文件,管道,socket套接字,设备,Unix域套接字等等,同时,它还可以结合 grep 以及 ps 命令进行更多的高级搜索

安装

lsof 命令默认是没有安装的,而且它的使用需要有root权限或者赋予普通用于sudo权限, 使用以下命令安装


  1. yum install -y lsof 

lsof 命令有很多可选参数,本文根据我自己的使用经验整理了一些比较常用且重要的用法

列出所有打开的文件

不带任何参数执行 lsof 命令会输出当前所有活跃进程打开的所有文件


  1. [root@ecs-centos-7 ~]# lsof | more 
  2. COMMAND     PID   TID    USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME 
  3. systemd       1          root  cwd       DIR              253,1      4096          2 / 
  4. systemd       1          root  rtd       DIR              253,1      4096          2 / 
  5. systemd       1          root  txt       REG              253,1   1624520     530313 /usr/lib/systemd/systemd 
  6. systemd       1          root  mem       REG              253,1     20064     528340 /usr/lib64/libuuid.so.1.3.0 
  7. systemd       1          root  mem       REG              253,1    265600     532853 /usr/lib64/libblkid.so.1.1.0 
  8. systemd       1          root  mem       REG              253,1     90248     525942 /usr/lib64/libz.so.1.2.7 
  9. systemd       1          root  mem       REG              253,1    157424     525955 /usr/lib64/liblzma.so.5.2.2 
  10. systemd       1          root  mem       REG              253,1     23968     526159 /usr/lib64/libcap-ng.so.0.0.0 
  11. systemd       1          root  mem       REG              253,1     19896     526135 /usr/lib64/libattr.so.1.1.0 
  12. systemd       1          root  mem       REG              253,1     19288     525996 /usr/lib64/libdl-2.17.so 
  13. systemd       1          root  mem       REG              253,1    402384     525931 /usr/lib64/libpcre.so.1.2.0 
  14. systemd       1          root  mem       REG              253,1   2156160      

由于lsof命令会输出很多信息,所以上面例子中使用了 lsof | more 来分页显示命令输出结果

输出结果中,第一列中 systemd 的进程ID是 1,它是一个守护进程

其中列 COMMAND 、PID、USER 分别表示进程名、进程ID、所属用户

列 FD 是文件描述符,下面是可能的类型以及说明

FD 说明
cwd 当前目录
txt txt文件
rtd root目录
mem 内存映射文件

列 TYPE 是文件类型,下面是可能的值以及说明

TYPE 说明
DIR 目录
REG 普通文件
CHR 字符
a_inode Inode文件
FIFO 管道或者socket文件
netlink 网络
unknown 未知

列 DEVICE 表示设备ID

列 SIZE/OFF 表示进程大小

列 NODE 表示文件的Inode号

列NAME 表示路径或者链接

列出指定用户已打开的文件

使用 -u 选项可以列出指定用户已经打开的文件,该选项后面可以接多个用户名,每个用户名之间用空格隔开,表示列出所有指定用户已打开的所有文件

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章