• centos8平台使用lsof


    一,lsof的用途

    lsof,List Open Files 列出当前系统打开文件的工具。

    在linux环境下,任何事物都以文件的形式存在,

    所以lsof通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件

    说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

             对应的源码可以访问这里获取: https://github.com/liuhongdi/

     说明:作者:刘宏缔 邮箱: 371125307@qq.com

    二,lsof安装:

    1,查看lsof所属的包

    [root@blog ~]# whereis lsof
    lsof: /usr/bin/lsof /usr/share/man/man1/lsof.1.gz
    
    [root@blog ~]# rpm -qf /usr/bin/lsof
    lsof-4.91-2.el8.x86_64

    2,如果提示找不到lsof命令,可以用yum安装

    [root@blog ~]# yum install lsof

    三,查看lsof的版本和帮助

    1,查看版本

    [root@blog ~]# lsof -v
    lsof version information:
        revision: 4.91
    ...

    2,查看帮助:

    [root@blog ~]# lsof -h 

    四,lsof的应用例子:

    1,查看系统中所有打开的文件

    [root@blog ~]# lsof

    2,查看某个用户打开的文件

    # -u 参数用来指定要查看的用户

    [root@blog ~]# lsof -u mysql
    COMMAND     PID  USER   FD      TYPE             DEVICE   SIZE/OFF      NODE NAME
    mysqld_sa 17246 mysql  cwd       DIR              253,1        129 201372497 /usr/local/soft/mysql
    mysqld_sa 17246 mysql  rtd       DIR              253,1        272       128 /
    mysqld_sa 17246 mysql  txt       REG              253,1    1219216  16999680 /usr/bin/bash 
    ...

    3,查看有哪些进程正在打开某个文件?

    [root@blog ~]# lsof /data/mysql/log/mysql-slow.log
    COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
    mysqld  17700 mysql   29w   REG  253,1    11018 34357947 /data/mysql/log/mysql-slow.log

    说明:lsof后加文件名即可列出正在打开文件的进程

    4,列出某个进程正在打开的文件(最常用的用法)

    # -p 指定要查看的进程

    [root@blog ~]# lsof -p 17700
    COMMAND   PID  USER   FD      TYPE             DEVICE   SIZE/OFF      NODE NAME
    mysqld  17700 mysql  cwd       DIR              253,1       4096 302055050 /data/mysql/data
    mysqld  17700 mysql  rtd       DIR              253,1        272       128 /
    mysqld  17700 mysql  txt       REG              253,1 1078700088 218133053 /usr/local/soft/mysql/bin/mysqld
    mysqld  17700 mysql  DEL       REG               0,17              3207767 /[aio]
    mysqld  17700 mysql  DEL       REG               0,17              3207766 /[aio]
    mysqld  17700 mysql  DEL       REG               0,17              3207765 /[aio]
    mysqld  17700 mysql  DEL       REG               0,17              3207764 /[aio] 
    ...

    说明:

    输出字段的说明:

    FD 表示文件描述符号:

    如果值是3w,表示:它的文件描述符是 3 号,而 3 后面的 w ,表示以写的方式打开

    TYPE 表示文件类型

    NAME 表示文件路径

    5,列出多个进程正在打开的文件(最常用的用法)

    [root@blog ~]# lsof -p 7492,7493,7494 

    6,列出所有的网络连接

    # -i 用来查看网络连接的进程

    [root@blog ~]# lsof -i
    COMMAND     PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    NetworkMa   834   root   18u  IPv4   21344      0t0  UDP blog:bootpc
    nginx      7491   root   22u  IPv4 3087363      0t0  TCP *:http (LISTEN)
    nginx      7491   root   23u  IPv4 3087364      0t0  TCP *:54321 (LISTEN)
    nginx      7492  nginx   22u  IPv4 3087363      0t0  TCP *:http (LISTEN) 

    7,指定的连接的类型:

    列出所有tcp 网络连接信息

    [root@blog ~]# lsof -i tcp

    列出所有udp 网络连接信息

    [root@blog ~]# lsof -i udp

    8,列出在使用某个端口的进程

    #  -i :port用来指定要查看的端口

    [root@blog ~]# lsof -i :3306
    COMMAND   PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    mysqld  17700 mysql   31u  IPv6 3206926      0t0  TCP *:mysql (LISTEN)

    9,列出nginx进程现在打开的文件

    # -c 指定要查看的进程的名字

    [root@blog ~]# lsof -c nginx

    10,-n参数:不将IP转换为hostname,默认会进行转换,即默认不加上-n参数,

    [root@blog ~]# lsof -n -i :3306
    COMMAND   PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    mysqld  17700 mysql   31u  IPv6 3206926      0t0  TCP *:mysql (LISTEN)

    11,列出所有使用fd为指定值的进程

    # -d:指定文件描述符的值

    [root@blog ~]# lsof -d 1 
    COMMAND     PID           USER   FD   TYPE             DEVICE SIZE/OFF     NODE NAME
    systemd       1           root    1u   CHR                1,3      0t0    11236 /dev/null
    systemd-j   513           root    1w   CHR                1,3      0t0    11236 /dev/null 

     五,查看centos的版本:

    [root@blog ~]# cat /etc/redhat-release
    CentOS Linux release 8.0.1905 (Core) 
  • 相关阅读:
    POJ 1611 The Suspects
    POJ 2001 Shortest Prefixes(字典树)
    HDU 1251 统计难题(字典树 裸题 链表做法)
    G++ C++之区别
    PAT 乙级 1013. 数素数 (20)
    PAT 乙级 1012. 数字分类 (20)
    PAT 乙级 1009. 说反话 (20)
    PAT 乙级 1008. 数组元素循环右移问题 (20)
    HDU 6063 17多校3 RXD and math(暴力打表题)
    HDU 6066 17多校3 RXD's date(超水题)
  • 原文地址:https://www.cnblogs.com/architectforest/p/12638773.html
Copyright © 2020-2023  润新知