Linux命令之lsof

1.lsof介绍

Linux lsof是用来查看当前系统进程打开的文件。linux系统中,一切皆为文件,lsof可以查看的"文件"类型有:

-->目录

-->文件

-->字符设备

-->共享库

-->网络文件

2.lsof用法

lsof [参数] filename

lsof常用参数

参数

说明

-i

列出符合条件的进程

-p <PID>

列出进程号打开的文件

-u <user/uid>

列出用户打开的文件

3.实例

3.1.查看22端口打开的文件

命令:

lsof -i :22

[root@rhel77 ~]# lsof -i :22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1292 root    3u  IPv4  27262      0t0  TCP *:ssh (LISTEN)
sshd    1292 root    4u  IPv6  27264      0t0  TCP *:ssh (LISTEN)
sshd    1760 root    3u  IPv4  33566      0t0  TCP rhel77.boc.com:ssh->gateway:54761 (ESTABLISHED)
[root@rhel77 ~]#

3.2.列出某进程号打开的文件

命令:

lsof -p <pid>

[root@rhel77 ~]# ps -ef |grep ssh
root       1292      1  0 07:31 ?        00:00:00 /usr/sbin/sshd -D
root       1760   1292  0 07:31 ?        00:00:00 sshd: root@pts/0
root       2321   1766  0 08:24 pts/0    00:00:00 grep --color=auto ssh
[root@rhel77 ~]# lsof -p 1292
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF   NODE NAME
sshd    1292 root  cwd    DIR                8,6     4096     64 /
sshd    1292 root  rtd    DIR                8,6     4096     64 /
sshd    1292 root  txt    REG                8,6   852888 311561 /usr/sbin/sshd
sshd    1292 root  mem    REG                8,6    61560   1512 /usr/lib64/libnss_files-2.17.so
sshd    1292 root  mem    REG                8,6    68192   6391 /usr/lib64/libbz2.so.1.0.6
sshd    1292 root  mem    REG                8,6    99952   6470 /usr/lib64/libelf-0.176.so
sshd    1292 root  mem    REG                8,6    19896   6482 /usr/lib64/libattr.so.1.1.0
sshd    1292 root  mem    REG                8,6    15688   6821 /usr/lib64/libkeyutils.so.1.5
sshd    1292 root  mem    REG                8,6    67104  53597 /usr/lib64/libkrb5support.so.0.1
sshd    1292 root  mem    REG                8,6    11392   1209 /usr/lib64/libfreebl3.so
sshd    1292 root  mem    REG                8,6   251888   1538 /usr/lib64/libnspr4.so
sshd    1292 root  mem    REG                8,6    20096   1539 /usr/lib64/libplc4.so
sshd    1292 root  mem    REG                8,6    15800   1540 /usr/lib64/libplds4.so
sshd    1292 root  mem    REG                8,6   198960   1541 /usr/lib64/libnssutil3.so
sshd    1292 root  mem    REG                8,6  1257792 243068 /usr/lib64/libnss3.so
sshd    1292 root  mem    REG                8,6   168336 243069 /usr/lib64/libsmime3.so
sshd    1292 root  mem    REG                8,6   370584 243070 /usr/lib64/libssl3.so
sshd    1292 root  mem    REG                8,6   470360  53609 /usr/lib64/libssl.so.1.0.2k
sshd    1292 root  mem    REG                8,6   121208 242732 /usr/lib64/libsasl2.so.3.0.0
sshd    1292 root  mem    REG                8,6   142144   1520 /usr/lib64/libpthread-2.17.so
sshd    1292 root  mem    REG                8,6    88776     78 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
sshd    1292 root  mem    REG                8,6   338672 243920 /usr/lib64/libdw-0.176.so
sshd    1292 root  mem    REG                8,6    19384   6475 /usr/lib64/libgpg-error.so.0.10.0
sshd    1292 root  mem    REG                8,6   535064   6480 /usr/lib64/libgcrypt.so.11.8.2
sshd    1292 root  mem    REG                8,6    86024   6823 /usr/lib64/liblz4.so.1.7.5
sshd    1292 root  mem    REG                8,6   157400   6366 /usr/lib64/liblzma.so.5.2.2
sshd    1292 root  mem    REG                8,6    43712   1524 /usr/lib64/librt-2.17.so
sshd    1292 root  mem    REG                8,6  1136944   1502 /usr/lib64/libm-2.17.so
sshd    1292 root  mem    REG                8,6    20096   6484 /usr/lib64/libcap.so.2.22
sshd    1292 root  mem    REG                8,6   402384   6347 /usr/lib64/libpcre.so.1.2.0
sshd    1292 root  mem    REG                8,6    23968   6492 /usr/lib64/libcap-ng.so.0.0.0
sshd    1292 root  mem    REG                8,6   115816   1504 /usr/lib64/libnsl-2.17.so
sshd    1292 root  mem    REG                8,6  2156072   1494 /usr/lib64/libc-2.17.so
sshd    1292 root  mem    REG                8,6    15856   6368 /usr/lib64/libcom_err.so.2.1
sshd    1292 root  mem    REG                8,6   210824  53589 /usr/lib64/libk5crypto.so.3.1
sshd    1292 root  mem    REG                8,6   967848  53595 /usr/lib64/libkrb5.so.3.3
sshd    1292 root  mem    REG                8,6   320400  53585 /usr/lib64/libgssapi_krb5.so.2.2
sshd    1292 root  mem    REG                8,6   105744   1522 /usr/lib64/libresolv-2.17.so
sshd    1292 root  mem    REG                8,6    40600   1498 /usr/lib64/libcrypt-2.17.so
sshd    1292 root  mem    REG                8,6    90248   6359 /usr/lib64/libz.so.1.2.7
sshd    1292 root  mem    REG                8,6    14424   1528 /usr/lib64/libutil-2.17.so
sshd    1292 root  mem    REG                8,6    61952 243219 /usr/lib64/liblber-2.4.so.2.10.7
sshd    1292 root  mem    REG                8,6   352584 243221 /usr/lib64/libldap-2.4.so.2.10.7
sshd    1292 root  mem    REG                8,6    19248   1500 /usr/lib64/libdl-2.17.so
sshd    1292 root  mem    REG                8,6  2521008  53607 /usr/lib64/libcrypto.so.1.0.2k
sshd    1292 root  mem    REG                8,6   203688 243933 /usr/lib64/libsystemd.so.0.6.0
sshd    1292 root  mem    REG                8,6   155784   6356 /usr/lib64/libselinux.so.1
sshd    1292 root  mem    REG                8,6    61744 242499 /usr/lib64/libpam.so.0.83.1
sshd    1292 root  mem    REG                8,6   127112   6496 /usr/lib64/libaudit.so.1.0.0
sshd    1292 root  mem    REG                8,6    42520   6809 /usr/lib64/libwrap.so.0.7.6
sshd    1292 root  mem    REG                8,6    11344 243459 /usr/lib64/libfipscheck.so.1.2.1
sshd    1292 root  mem    REG                8,6   163312   1487 /usr/lib64/ld-2.17.so
sshd    1292 root    0r   CHR                1,3      0t0   1028 /dev/null
sshd    1292 root    1u  unix 0xffff8cf3f677e800      0t0  25449 socket
sshd    1292 root    2u  unix 0xffff8cf3f677e800      0t0  25449 socket
sshd    1292 root    3u  IPv4              27262      0t0    TCP *:ssh (LISTEN)
sshd    1292 root    4u  IPv6              27264      0t0    TCP *:ssh (LISTEN)
[root@rhel77 ~]#

3.3.列出root打开的文件

命令:

lsof -u <user/uid>

[root@rhel77 ~]# lsof -u root |head -n 10
COMMAND    PID USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd      1 root  cwd       DIR                8,6      4096         64 /
systemd      1 root  rtd       DIR                8,6      4096         64 /
systemd      1 root  txt       REG                8,6   1624504   67335905 /usr/lib/systemd/systemd
systemd      1 root  mem       REG                8,6     20112       6389 /usr/lib64/libuuid.so.1.3.0
systemd      1 root  mem       REG                8,6    265680     242297 /usr/lib64/libblkid.so.1.1.0
systemd      1 root  mem       REG                8,6     90248       6359 /usr/lib64/libz.so.1.2.7
systemd      1 root  mem       REG                8,6    157400       6366 /usr/lib64/liblzma.so.5.2.2
systemd      1 root  mem       REG                8,6     23968       6492 /usr/lib64/libcap-ng.so.0.0.0
systemd      1 root  mem       REG                8,6     19896       6482 /usr/lib64/libattr.so.1.1.0
[root@rhel77 ~]#

3.4.列出所有网络连接

命令:

lsof -i

[root@rhel77 ~]# lsof -i |head -n 10
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd      1   root   40u  IPv4  20566      0t0  UDP *:ntalk 
systemd      1   root   47u  IPv4  20578      0t0  TCP *:sunrpc (LISTEN)
systemd      1   root   48u  IPv4  20579      0t0  UDP *:sunrpc 
systemd      1   root   49u  IPv6  20580      0t0  TCP *:sunrpc (LISTEN)
systemd      1   root   50u  IPv6  20581      0t0  UDP *:sunrpc 
rpcbind    928    rpc    4u  IPv4  20578      0t0  TCP *:sunrpc (LISTEN)
rpcbind    928    rpc    5u  IPv4  20579      0t0  UDP *:sunrpc 
rpcbind    928    rpc    6u  IPv6  20580      0t0  TCP *:sunrpc (LISTEN)
rpcbind    928    rpc    7u  IPv6  20581      0t0  UDP *:sunrpc 
[root@rhel77 ~]#