zoukankan      html  css  js  c++  java
  • Linux 系统管理命令

    命令详解

    重要星级:

            ★★★★★

    功能说明:

             全名为 list open files,也就是列举系统中已经被打开的文件,通过 lsof 命令,就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

    语法格式:

        lsof [option]
        lsof [选项]

    说明:

            在 lsof 命令及后面的选项里,每个元素之间都至少要有一个空格。

    选项说明:

    -c <进程名>: 显示指定的进程名所打开的文件
    
    -p <进程号>: 显示指定的进程号所打开的文件
    
    -i :通过监听指定的协议、端口和主机等信息,显示符合条件的进程信息
    
    -u:显示指定用户使用的文件
    
    -U:显示所有 socket 文件 

    使用范例:

    显示使用文件的进程 ( lsof 文件名 ):

    [root@localhost :~]# lsof /var/log/messages
    COMMAND PID USER FD TYPE DEVICE SIZE
    /OFF NODE NAME rsyslogd 1034 root 6w REG 253,0 170555 53630778 /var/log/messages

            如果想知道某个特定的文件是由哪个进程在使用,就可以通过   lsof 文件名  的方式来得到。从上面的输出可以得知,/var/log/messages 文件是由 rsyslogd进程在使用。

    输出中每列的含义具体如下:

    command :命令,进程的名称
    
    pid :进程号
    
    user :进程的所有者
    
    fd :
        0 :标准输出。
        1 :标准输入。
        2 :标准错误。
        u :该文件被打开并处于 "读取/写入" 模式。
        r :该文件被打开并处于 "只读" 模式。
        w :该文件被打开并处于 "写入" 模式。
    
    type :文件类型,REG (regular) 为普通文件。
    
    device :指定磁盘的名称。
    
    size/off :文件的大小
    
    node :索引节点
    
    name :文件名称

     显示指定进程所打开的文件 ( lsof -c rsyslog ):

    [root@localhost :~]# lsof -c rsyslog
    
    COMMAND   PID USER   FD      TYPE             DEVICE SIZE/OFF     NODE NAME
    rsyslogd 1030 root  cwd       DIR              253,0      224       64 /
    rsyslogd 1030 root  rtd       DIR              253,0      224       64 /
    rsyslogd 1030 root  txt       REG              253,0   663960   201811 /usr/sbin/rsyslogd

    显示指定进程号所打开的文件 ( lsof -p 1030 ):

    [root@localhost :~]# lsof -p 1030
    
    COMMAND   PID USER   FD      TYPE             DEVICE SIZE/OFF     NODE NAME
    rsyslogd 1030 root  cwd       DIR              253,0      224       64 /
    rsyslogd 1030 root  rtd       DIR              253,0      224       64 /
    rsyslogd 1030 root  txt       REG              253,0   663960   201811 /usr/sbin/rsyslogd

    监听指定的协议、端口和主机等信息,显示符合条件的进程信息:

            语法格式:   lsof -i [4,6] [protocol] [@hostname] [:service|port]  

            含义如下:

    4, 6 :4代表 IPv4,6代表 IPv6。
    
    protocol :传输协议,可以是 TCP 或 UDP。
    
    hostname :主机名称或者 IP 地址。
    
    service :进程的服务名,例如 NFS、SSH 或 FTP 等。
    
    port :系统中与服务对应的端口号。例如 HTTP 服务默认对应的端口号为80,SSH 服务默认对应的端口号为22。

            使用范例:

    [root@localhost :~]# lsof -i               # 查看所有进程
    COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    chronyd   667 chrony    1u  IPv4  17205      0t0  UDP localhost:323 
    chronyd   667 chrony    2u  IPv6  17206      0t0  UDP localhost:323 
    dhclient  836   root    6u  IPv4  19452      0t0  UDP *:bootpc 
    sshd     1029   root    3u  IPv4  19989      0t0  TCP *:ssh (LISTEN)
    sshd     1029   root    4u  IPv6  19991      0t0  TCP *:ssh (LISTEN)
    master   1205   root   13u  IPv4  20341      0t0  TCP localhost:smtp (LISTEN)
    master   1205   root   14u  IPv6  20342      0t0  TCP localhost:smtp (LISTEN)
    sshd     1314   root    3u  IPv4  21642      0t0  TCP localhost.localdomain:ssh->192.168.61.1:43834 (ESTABLISHED)
    
    
    [root@localhost :~]# lsof -i tcp        # 显示所有 tcp 网络连接的进程信息
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    sshd    1029 root    3u  IPv4  19989      0t0  TCP *:ssh (LISTEN)
    sshd    1029 root    4u  IPv6  19991      0t0  TCP *:ssh (LISTEN)
    master  1205 root   13u  IPv4  20341      0t0  TCP localhost:smtp (LISTEN)
    master  1205 root   14u  IPv6  20342      0t0  TCP localhost:smtp (LISTEN)
    sshd    1314 root    3u  IPv4  21642      0t0  TCP localhost.localdomain:ssh->192.168.61.1:43834 (ESTABLISHED)
    
    
    [root@localhost :~]# lsof -i :22        # 显示端口为22的进程。(这条命令很常用!)
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    sshd    1029 root    3u  IPv4  19989      0t0  TCP *:ssh (LISTEN)
    sshd    1029 root    4u  IPv6  19991      0t0  TCP *:ssh (LISTEN)
    sshd    1314 root    3u  IPv4  21642      0t0  TCP localhost.localdomain:ssh->192.168.61.1:43834 (ESTABLISHED)
    
    
    [root@localhost :~]# lsof -i tcp:22     # 显示同时满足 TCP 和端口为22的进程。
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    sshd    1029 root    3u  IPv4  19989      0t0  TCP *:ssh (LISTEN)
    sshd    1029 root    4u  IPv6  19991      0t0  TCP *:ssh (LISTEN)
    sshd    1314 root    3u  IPv4  21642      0t0  TCP localhost.localdomain:ssh->192.168.61.1:43834 (ESTABLISHED)

     显示指定用户使用的文件:

    [root@localhost :~]# lsof -u root        # 使用 -u 选项显示 root 用户使用的文件
    
    COMMAND    PID USER   FD      TYPE         DEVICE  SIZE/OFF       NODE NAME
    systemd      1 root  cwd       DIR          253,0       224         64 /
    systemd      1 root  rtd       DIR          253,0       224         64 /
    systemd      1 root  txt       REG          253,0   1612144     510318 /usr/lib/systemd/systemd
    systemd      1 root  mem       REG          253,0     20112      96164 /usr/lib64/libuuid.so.1.3.0
    systemd      1 root  mem       REG          253,0    261488      96173 /usr/lib64/libblkid.so.1.1.0
    systemd      1 root  mem       REG          253,0     90664      51273 /usr/lib64/libz.so.1.2.7
    systemd      1 root  mem       REG          253,0    157424      96153 /usr/lib64/liblzma.so.5.2.2
    systemd      1 root  mem       REG          253,0     23968      96253 /usr/lib64/libcap-ng.so.0.0.0
    systemd      1 root  mem       REG          253,0     19896      78793 /usr/lib64/libattr.so.1.1.0
    systemd      1 root  mem       REG          253,0     19776      49344 /usr/lib64/libdl-2.17.so
    systemd      1 root  mem       REG          253,0    402384      78806 /usr/lib64/libpcre.so.1.2.0
    systemd      1 root  mem       REG          253,0   2173512      49338 /usr/lib64/libc-2.17.so
    systemd      1 root  mem       REG          253,0    144792      49364 /usr/lib64/libpthread-2.17.so
    ...

    显示所有 socket 文件:

    [root@localhost :~]# lsof -U         # 使用 -U 选项显示所有 socket 文件
    COMMAND    PID    USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
    systemd      1    root   12u  unix 0xffff8a5835d74800      0t0 13622 /run/systemd/private
    systemd      1    root   23u  unix 0xffff8a583668e800      0t0  9294 /run/systemd/notify
    systemd      1    root   24u  unix 0xffff8a5835d75000      0t0 13644 /run/systemd/shutdownd
    systemd      1    root   25u  unix 0xffff8a583668f000      0t0  9296 /run/systemd/cgroups-agent
    systemd      1    root   26u  unix 0xffff8a5835d70800      0t0 13653 /run/lvm/lvmpolld.socket
    systemd      1    root   28u  unix 0xffff8a583668e400      0t0  9311 /run/systemd/journal/stdout
    systemd      1    root   29u  unix 0xffff8a583668ec00      0t0  9314 /run/systemd/journal/socket
    systemd      1    root   30u  unix 0xffff8a5836218000      0t0  9316 /dev/log
    systemd      1    root   31u  unix 0xffff8a5835d72000      0t0 13770 /run/lvm/lvmetad.socket
    systemd      1    root   35u  unix 0xffff8a5835d73000      0t0 13837 /run/udev/control
    systemd      1    root   36u  unix 0xffff8a5835d70c00      0t0 13853 socket
    systemd      1    root   37u  unix 0xffff8a5835dab000      0t0 16819 /run/dbus/system_bus_socket
    systemd      1    root   38u  unix 0xffff8a5836116800      0t0 14433 /run/systemd/journal/stdout
    systemd      1    root   39u  unix 0xffff8a5836113800      0t0 14435 /run/systemd/journal/stdout
    systemd      1    root   40u  unix 0xffff8a5835e31000      0t0 17026 socket
    systemd      1    root   41u  unix 0xffff8a583809d000      0t0 18626 /run/systemd/journal/stdout
    systemd      1    root   43u  unix 0xffff8a583668f400      0t0 16260 /run/systemd/journal/stdout
  • 相关阅读:
    MySQLCluster架构图文详解
    Request.ServerVariables大全,写到这里方便查找
    如何修改表的标识列
    如何在存储过程中,调用另一存储过程的结果集
    自我简介
    第二个web网页
    第一个网页感想
    C语言I博客作业03
    ES基本搜索(1)
    ES的入门学习
  • 原文地址:https://www.cnblogs.com/clement-jiao/p/10164436.html
Copyright © 2011-2022 走看看