• 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
    感谢您花时间阅读文章
    关注公众号不迷路
  • 相关阅读:
    SpringBoot 教程及其相关知识整理
    向毕业妥协系列之机器学习笔记:构建ML系统(三)
    OpenSSL在i.MX8MP开发板上的应用
    计算机毕业设计---基于SSM的即动运动网站
    如何转变固定资产管理方式,让企业降本增效?
    基于Centos7.6安裝CDH6集群
    普冉PY32系列(五) 使用JLink RTT代替串口输出日志
    沪漂十余年我拿到了上海户口
    为了保证openGauss的正确安装,请首先对主机环境进行配置
    芯片学习记录TLP104
  • 原文地址:https://blog.csdn.net/u011521019/article/details/134431902