• Linux 命令:lsof(列出打开的文件)


    1. 写在前面

    本文主要介绍:Linux “lsof” 命令;

    公众号: 滑翔的纸飞机

    2. lsof 命令

    lsof 命令是 "List Open Files(列出打开的文件)"的缩写,用于显示打开的文件以及使用这些文件的进程。

    在 Linux 中,一切都以文件的形式存在。有时,特别是为了排除故障,我们需要知道当前哪些进程使用了哪些文件,还可以查看系统中某些网络连接打开的文件等。

    root@dev:~# lsof | more
    COMMAND       PID     TID TASKCMD               USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
    systemd         1                               root  cwd       DIR              252,1      4096          2 /
    systemd         1                               root  rtd       DIR              252,1      4096          2 /
    systemd         1                               root  txt       REG              252,1   1620224      73069 /usr/lib/systemd/systemd
    systemd         1                               root  mem       REG              252,1   1369384       4750 /usr/lib/x86_64-linux-gnu/libm-2.31.so
    systemd         1                               root  mem       REG              252,1    178528       2927 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.17
    systemd         1                               root  mem       REG              252,1   1575112       4547 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0
    systemd         1                               root  mem       REG              252,1    137584       3750 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.28.0
    systemd         1                               root  mem       REG              252,1     67912       4571 /usr/lib/x86_64-linux-gnu/libjson-c.so.4.0.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    接下去,让我们来看看 lsof 命令的一些重要选项。

    2.1 按用户名过滤打开的文件夹

    按用户名过滤打开的文件:

    root@dev:~# lsof -u root
    COMMAND       PID   USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
    systemd     23028 bolean  cwd       DIR              252,1     4096          2 /
    systemd     23028 bolean  rtd       DIR              252,1     4096          2 /
    systemd     23028 bolean  txt       REG              252,1  1620224      73069 /usr/lib/systemd/systemd
    systemd     23028 bolean  mem       REG              252,1  1369384       4750 /usr/lib/x86_64-linux-gnu/libm-2.31.so
    systemd     23028 bolean  mem       REG              252,1   178528       2927 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.17
    systemd     23028 bolean  mem       REG              252,1  1575112       4547 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0
    systemd     23028 bolean  mem       REG              252,1   137584       3750 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.28.0
    systemd     23028 bolean  mem       REG              252,1    67912       4571 /usr/lib/x86_64-linux-gnu/libjson-c.so.4.0.0
    systemd     23028 bolean  mem       REG              252,1    34872       3489 /usr/lib/x86_64-linux-gnu/libargon2.so.1
    systemd     23028 bolean  mem       REG              252,1   431472       7146 /usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02.1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    除特定用户名外过滤打开的文件(反向):

    root@dev:~# lsof -u ^root
    COMMAND       PID     TID TASKCMD               USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
    systemd         1                               root  cwd       DIR              252,1      4096          2 /
    systemd         1                               root  rtd       DIR              252,1      4096          2 /
    systemd         1                               root  txt       REG              252,1   1620224      73069 /usr/lib/systemd/systemd
    systemd         1                               root  mem       REG              252,1   1369384       4750 /usr/lib/x86_64-linux-gnu/libm-2.31.so
    systemd         1                               root  mem       REG              252,1    178528       2927 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.17
    systemd         1                               root  mem       REG              252,1   1575112       4547 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0
    systemd         1                               root  mem       REG              252,1    137584       3750 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.28.0
    systemd         1                               root  mem       REG              252,1     67912       4571 /usr/lib/x86_64-linux-gnu/libjson-c.so.4.0.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.2 按特定进程过滤打开的文件

    按特定进程过滤打开的文件:

    root@dev:~# lsof -c containerd
    COMMAND       PID USER   FD      TYPE             DEVICE SIZE/OFF     NODE NAME
    container     713 root  cwd       DIR              252,1     4096        2 /
    container     713 root  rtd       DIR              252,1     4096        2 /
    container     713 root  txt       REG              252,1 52007976     3761 /usr/bin/containerd
    container     713 root  mem-W     REG              252,1  2097152   516163 /var/lib/containerd/io.containerd.metadata.v1.bolt/meta.db
    container     713 root  mem       REG              252,1  2029592     4745 /usr/lib/x86_64-linux-gnu/libc-2.31.so
    container     713 root  mem       REG              252,1   157224     4761 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.3 根据进程 ID 过滤打开的文件

    根据进程 ID 过滤打开的文件:

    root@dev:~# lsof -p 713
    COMMAND   PID USER   FD      TYPE             DEVICE SIZE/OFF     NODE NAME
    container 713 root  cwd       DIR              252,1     4096        2 /
    container 713 root  rtd       DIR              252,1     4096        2 /
    container 713 root  txt       REG              252,1 52007976     3761 /usr/bin/containerd
    container 713 root  mem-W     REG              252,1  2097152   516163 /var/lib/containerd/io.containerd.metadata.v1.bolt/meta.db
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.4 按目录过滤打开的文件

    按目录过滤打开的文件:

    root@dev:~# lsof +D /usr/bin
    COMMAND       PID          USER  FD   TYPE DEVICE SIZE/OFF  NODE NAME
    dbus-daem     688    messagebus txt    REG  252,1   249032  1680 /usr/bin/dbus-daemon
    networkd-     695          root txt    REG  252,1  5494584  2969 /usr/bin/python3.8
    container     713          root txt    REG  252,1 52007976  3761 /usr/bin/containerd
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.5 按网络连接过滤打开的文件

    按网络连接过滤打开的文件:

    root@dev:~# lsof -i 
    COMMAND       PID            USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
    systemd-n     630 systemd-network   17u  IPv4 29112968      0t0  UDP redis:bootpc 
    systemd-r     634 systemd-resolve   12u  IPv4    20104      0t0  UDP localhost:domain 
    systemd-r     634 systemd-resolve   13u  IPv4    20105      0t0  TCP localhost:domain (LISTEN)
    sshd          756            root    3u  IPv4    22042      0t0  TCP *:ssh (LISTEN)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.6 按端口过滤打开的文件

    按端口过滤打开的文件:

    root@dev:~# lsof -i :22
    COMMAND     PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
    sshd        756   root    3u  IPv4    22042      0t0  TCP *:ssh (LISTEN)
    sshd        756   root    4u  IPv6    23092      0t0  TCP *:ssh (LISTEN)
    sshd    1251251   root    4u  IPv4 30406337      0t0  TCP redis:ssh->10.20.0.6:52875 (ESTABLISHED)
    sshd    1277315   root    4u  IPv4 30561119      0t0  TCP redis:ssh->10.20.0.6:53199 (ESTABLISHED)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.7 按协议过滤打开的文件

    按协议过滤打开的文件:

    root@dev:~# lsof -i TCP
    COMMAND       PID            USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
    systemd-r     634 systemd-resolve   13u  IPv4    20105      0t0  TCP localhost:domain (LISTEN)
    sshd          756            root    3u  IPv4    22042      0t0  TCP *:ssh (LISTEN)
    sshd          756            root    4u  IPv6    23092      0t0  TCP *:ssh (LISTEN)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    感谢您花时间阅读文章
    关注公众号不迷路
  • 相关阅读:
    ffmpeg跨平台arm编译-ubuntu
    Elasticsearch7 单节点与集群部署
    DevOps学习 | 如何应对IT服务交付中的问题?
    Python中class内置方法__init__与__new__作用与区别探究
    【阿克曼运动控制】
    商家入驻商城 多商户商城 宝塔安装搭建教程 说明 小程序、h5、pc端
    前端环境变量及vite中本地环境配置实践
    java--进制详解
    计算机网络:IEEE 802.11无线局域网
    线上展厅优势
  • 原文地址:https://blog.csdn.net/u011521019/article/details/134431902