约会远行的专栏

不积跬步无以至千里;不积小流无以成江海。

linux命令---lsof

准备

确认OS上是否有该命令,没有的话就装一下:yum -y install lsof

lsof

list open files,是列出当前系统打开文件的工具

限制

lsof需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能,若使用普通用户执行会显示”permission denied”

使用方法及输出说明

[root@db25440 ~]# lsof |more
COMMAND     PID      USER   FD      TYPE             DEVICE    SIZE/OFF       NODE NAME
init          1      root  cwd       DIR                8,3        4096          2 /
init          1      root  rtd       DIR                8,3        4096          2 /
init          1      root  txt       REG                8,3      150352    4718632 /sbin/init
……

每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。

每一列的简单含义

列名 含义描述
COMMAND 进程的名称
PID 进程标识符
USER 进程所有者
FD 文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE 文件类型,如DIR、REG等
DEVICE 指定磁盘的名称
SIZE 文件的大小
NODE 索引节点(文件在磁盘上的标识)
NAME 打开文件的确切名称

FD补充说明

FD:文件描述符列表详细阐述

类型 描述
cwd 表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改
txt 该类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序
lnn library references (AIX)
er FD information error (see NAME column)
jld jail directory (FreeBSD)
ltx shared library text (code and data)
mxx hex memory-mapped type number xx
m86 DOS Merge mapped file
mem memory-mapped file
mmap memory-mapped device
pd parent directory
rtd root directory
tr kernel trace file (OpenBSD)
v86 VP/ix mapped file
0 表示标准输出
1 表示标准输入
2 表示标准错误

一般在标准输出、标准错误、标准输入后还跟着文件状态模式

类型 描述
u 表示该文件被打开并处于读取/写入模式
r 表示该文件被打开并处于只读模式
w 表示该文件被打开并处于
空格 表示该文件的状态模式为unknow,且没有锁定
- 表示该文件的状态模式为unknow,且被锁定
auditd     1177      root  DEL       REG                8,3                 262151 /lib64/ld-2.12.so
auditd     1177      root    0u      CHR                1,3         0t0       3973 /dev/null
auditd     1177      root    1u      CHR                1,3         0t0       3973 /dev/null
auditd     1177      root    2u      CHR                1,3         0t0       3973 /dev/null
……

同时在文件状态模式后面,还跟着相关的锁

类型 描述
N Solaris NFS未知类型锁
r 文件的部分读锁
R 整个文件的读锁
w 文件的部分写锁
W 整个文件的写锁
u 读写锁
U 未知类型锁
x SCO OpenServer Xenix部分文件锁
X SCO OpenServer Xenix整体文件锁
space 无锁

TYPE补充说明

可能不局限于这些~ 在实验环境中过滤出来这么多~

lsof |awk '{print $5}'|sort|uniq
类型 描述
DIR 表示目录
CHR 表示字符类型
BLK 块设备类型
UNIX UNIX 域套接字
FIFO 先进先出 (FIFO) 队列
IPv4 网际协议 (IP) 套接字
IPv6 网际协议 (IP) 套接字
DEVICE 指定磁盘的名称
REG 注册类型
SIZE 文件的大小
NODE 索引节点(文件在磁盘上的标识)
NAME 打开文件的确切名称
unknown 未知类型

详细参数

更详细的使用说明请参考:man lsof

先看下帮助信息(有点乱糟糟的 一行给好几个,反正也不以它为主,不整理了,看下就行)

[root@db25440 ~]# lsof -h
lsof 4.82
 latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
 latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
 latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
 usage: [-?abhlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s]
 [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Defaults in parentheses; comma-separated set (s) items; dash-separated ranges.
  -?|-h list help          -a AND selections (OR)     -b avoid kernel blocks
  -c c  cmd c ^c /c/[bix]  +c w  COMMAND width (9)     
  +d s  dir s files        -d s  select by FD set     +D D  dir D tree *SLOW?*
                           +|-e s  exempt s *RISKY*   -i select IPv[46] files
  -l list UID numbers      -n no host names           -N select NFS files
  -o list file offset      -O avoid overhead *RISKY*  -P no port names
  -R list paRent PID       -s list file size          -t terse listing
  -T disable TCP/TPI info  -U select Unix socket      -v list version info
  -V verbose search        +|-w  Warnings (+)         -X skip TCP&UDP* files
  -Z Z  context [Z]
  -- end option scan
  +f|-f  +filesystem or -file names     +|-f[gG] flaGs 
  -F [f] select fields; -F? for help  
  +|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)
                                        +m [m] use|create mount supplement
  +|-M   portMap registration (-)       -o o   o 0t offset digits (8)
  -p s   exclude(^)|select PIDs         -S [t] t second stat timeout (15)
  -T qs TCP/TPI Q,St (s) info
  -g [s] exclude(^)|select and print process group IDs
  -i i   select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]
  +|-r [t[m<fmt>]] repeat every t seconds (15);  + until no files, - forever.
       An optional suffix to t is m<fmt>; m must separate t from <fmt> and
      <fmt> is an strftime(3) format for the marker line.
  -s p:s  exclude(^)|select protocol (p = TCP|UDP) states by name(s).
  -u s   exclude(^)|select login|UID set s
  -x [fl] cross over +d|+D File systems or symbolic Links
  names  select named files or files on named file systems
Anyone can list all files; /dev warnings disabled; kernel ID check disabled.

给出一些常用的

常用参数选项 参数描述
-a -a参数可以将多个选项的组合条件由或变为与
-c <进程名> 列出以”进程名”开头命令所打开的文件
-g 从PGID列进行匹配
-d <文件号> 以FD列的信息进行匹配
+d<dir> 依照文件夹dir来搜寻,但不会打开子目录
+D<dir> 打开dir文件夹以及其子目录搜寻
-n<目录> 列出使用NFS的文件
-i <条件> 监听指定的协议、端口、主机等的网络信息。[46][proto][@host|addr][:svc_list|port_list](4、6、协议、:端口、 @ip)
-p<pid> 显示指定PID已打开文件的信息
-u 显示某用户的已经打开的文件(或该用户执行程序已经打开的文件)
+r time 当没有文件被打开的时候,repeat mode 将自行结束
-r time 不管文件是否存在或者被打开,它都将执行,直到你中断它
-t 输出进程的PID,一般结合其他命令使用,比如shell
-h 显示帮助信息
-v 显示版本信息。

根据经验使用频率最高:u、c、g、p、i

不太常用参数

参数选项 参数描述
+f 所有路径参数都必须是文件系统,否则不能执行
-f 所有路径参数都将作为普通的文件,例如:”-f – /”中的/,只会匹配单个/路径,而不会是根目录中的所有文件
+L/-L 打开或关闭文件的连结数计算,当+L没有指定时,所有的连结数都会显示(默认);若+L后指定数字,则只要连结数小于该数字的信息会显示;连结数会显示在NLINK列。
-L 默认参数,其后不能跟数字,将不显示连结数信息
-F 指定输出那个列,可通过lsof -F?查看
-s 列出文件的大小,若该文件没有大小,则留下空白
-n 不将IP位址转换成hostname,预设是不加上-n参数

使用实战

单个选项实例

  • 帮助
[root@db25440 ~]# lsof -h
lsof 4.82
 latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
 latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
 latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
 usage: [-?abhlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s]
 [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Defaults in parentheses; comma-separated set (s) items; dash-separated ranges.
  • 列出所有打开的文件
    不加任何参数,就会打开所有被打开的文件
[root@db25440 ~]# lsof |more
COMMAND     PID      USER   FD      TYPE             DEVICE    SIZE/OFF       NODE NAME
init          1      root  cwd       DIR                8,3        4096          2 /
init          1      root  rtd       DIR                8,3        4096          2 /
init          1      root  txt       REG                8,3      150352    4718632 /sbin/init
……
  • 查看谁正在使用某个文件
[root@db25440 ~]# lsof /my/base/db25440-slow.log
COMMAND   PID  USER   FD   TYPE DEVICE    SIZE/OFF     NODE NAME
mysqld  25129 mysql   19w   REG   8,17 23926772969 58458121 /my/base/db25440-slow.log
  • 递归查看某个目录的文件信息
[root@db25440 ~]# lsof +D /my/base/ 
COMMAND   PID  USER   FD   TYPE             DEVICE    SIZE/OFF     NODE NAME
mysqld  25129 mysql  cwd    DIR               8,17       12288 58458113 /my/base
mysqld  25129 mysql    1w   REG               8,17    82557470 58458114 /my/base/mysql.err
mysqld  25129 mysql    2w   REG               8,17    82557470 58458114 /my/base/mysql.err
mysqld  25129 mysql    4uW  REG               8,17  1207959552 58458115 /my/base/ibdata1
mysqld  25129 mysql    9uW  REG               8,17   536870912 58458116 /my/base/ib_logfile0
mysqld  25129 mysql   10uW  REG               8,17   536870912 58458117 /my/base/ib_logfile1
mysqld  25129 mysql   11uW  REG               8,17   536870912 58458118 /my/base/ib_logfile2
mysqld  25129 mysql   12uW  REG               8,17   536870912 58458119 /my/base/ib_logfile3
……

或者

[root@db25440 ~]# lsof |grep "/my/base/"|more
mysqld    25129     mysql    1w      REG               8,17    82557470   58458114 /my/base/mysql.err
mysqld    25129     mysql    2w      REG               8,17    82557470   58458114 /my/base/mysql.err
mysqld    25129     mysql    4uW     REG               8,17  1207959552   58458115 /my/base/ibdata1
mysqld    25129     mysql    9uW     REG               8,17   536870912   58458116 /my/base/ib_logfile0
mysqld    25129     mysql   10uW     REG               8,17   536870912   58458117 /my/base/ib_logfile1
mysqld    25129     mysql   11uW     REG               8,17   536870912   58458118 /my/base/ib_logfile2
mysqld    25129     mysql   12uW     REG               8,17   536870912   58458119 /my/base/ib_logfile3
  • 列出某个用户打开的文件信息
[root@db25440 ~]# lsof -u mysql|more
COMMAND   PID  USER   FD   TYPE             DEVICE    SIZE/OFF     NODE NAME
mysqld  25129 mysql  cwd    DIR               8,17       12288 58458113 /my/base
mysqld  25129 mysql  rtd    DIR                8,3        4096        2 /
mysqld  25129 mysql  txt    REG                8,3   252283693   134572 /usr/local/mysql/bin/mysqld
mysqld  25129 mysql  mem    REG                8,3      156936   265416 /lib64/ld-2.12.so
mysqld  25129 mysql  mem    REG                8,3       22536   265419 /lib64/libdl-2.12.so
……
  • 列出某个程序所打开的文件信息

这里是指定command开头的所有文件信息,注意例子的后半部分输出

[root@db25440 ~]# lsof -c mysql
COMMAND     PID  USER   FD   TYPE             DEVICE    SIZE/OFF     NODE NAME
mysql     10773  root  cwd    DIR                8,3        4096  8519681 /root
mysql     10773  root  rtd    DIR                8,3        4096        2 /
mysql     10773  root  txt    REG                8,3    10897395 10098587 /usr/bin/mysql
mysql     10773  root  mem    REG                8,3      156936   265416 /lib64/ld-2.12.so
mysql     10773  root  mem    REG                8,3       22536   265419 /lib64/libdl-2.12.so
mysql     10773  root  mem    REG                8,3     1926760   265417 /lib64/libc-2.12.so
……
mysqld    25129 mysql  206u  IPv6          104588747         0t0      TCP 10.255.254.40:mysql->10.255.255.150:6156 (ESTABLISHED)
mysqld    25129 mysql  207u  IPv6          104588748         0t0      TCP 10.255.254.40:mysql->10.255.255.150:6157 (ESTABLISHED)
mysqld    25129 mysql  208u  IPv6          104588749         0t0      TCP 10.255.254.40:mysql->10.255.255.150:6158 (ESTABLISHED)
mysqld    25129 mysql  288u   REG               8,17       10540 58458164 /my/base/mysql/proc.MYD
mysqld_sa 25289  root  cwd    DIR                8,3        4096 10104781 /usr/local/mysql
mysqld_sa 25289  root  rtd    DIR                8,3        4096        2 /
mysqld_sa 25289  root  txt    REG                8,3      940416  2752520 /bin/bash
mysqld_sa 25289  root  mem    REG                8,3      156936   265416 /lib64/ld-2.12.so
mysqld_sa 25289  root  mem    REG                8,3       22536   265419 /lib64/libdl-2.12.so
mysqld_sa 25289  root  mem    REG                8,3     1926760   265417 /lib64/libc-2.12.so

-c 参数可以多次指定:lsof -c mysql -c bash

[root@db25440 ~]# lsof -c mysql -c bash
……
bash      21910  root  mem    REG                8,3       26060 10093534 /usr/lib64/gconv/gconv-modules.cache
bash      21910  root    0u   CHR              136,0         0t0        3 /dev/pts/0
bash      21910  root    1u   CHR              136,0         0t0        3 /dev/pts/0
bash      21910  root    2u   CHR              136,0         0t0        3 /dev/pts/0
bash      21910  root  255u   CHR              136,0         0t0        3 /dev/pts/0
mysqld    25129 mysql  cwd    DIR               8,17       12288 58458113 /my/base
mysqld    25129 mysql  rtd    DIR                8,3        4096        2 /
mysqld    25129 mysql  txt    REG                8,3   252283693   134572 /usr/local/mysql/bin/mysqld
mysqld    25129 mysql  mem    REG                8,3      156936   265416 /lib64/ld-2.12.so
mysqld    25129 mysql  mem    REG                8,3       22536   265419 /lib64/libdl-2.12.so
……
  • 通过某个进程号显示该进行打开的文件
[root@db25440 ~]# ps -ef|grep mysql|grep -v grep
root     10773 20448  0 May15 pts/1    00:00:00 mysql -u root -h 10.255.255.150 -P3307
mysql    25129 25289  1 Mar09 ?        17:59:15 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql...
root     25289     1  0 Jan08 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe ...
[root@db25440 ~]# 
[root@db25440 ~]# 
[root@db25440 ~]# 
[root@db25440 ~]# lsof -p 25129|more
COMMAND   PID  USER   FD   TYPE             DEVICE    SIZE/OFF     NODE NAME
mysqld  25129 mysql  cwd    DIR               8,17       12288 58458113 /my/base
mysqld  25129 mysql  rtd    DIR                8,3        4096        2 /
mysqld  25129 mysql  txt    REG                8,3   252283693   134572 /usr/local/mysql/bin/mysqld
mysqld  25129 mysql  mem    REG                8,3      156936   265416 /lib64/ld-2.12.so
mysqld  25129 mysql  mem    REG                8,3       22536   265419 /lib64/libdl-2.12.so
mysqld  25129 mysql  mem    REG                8,3     1926760   265417 /lib64/libc-2.12.so
……
  • 列出多个进程号对应的文件信息
[root@db25440 ~]# lsof -p 25129,25289
……
mysqld    25129 mysql  288u   REG               8,17       10540 58458164 /my/base/mysql/proc.MYD
mysqld_sa 25289  root  cwd    DIR                8,3        4096 10104781 /usr/local/mysql
mysqld_sa 25289  root  rtd    DIR                8,3        4096        2 /
mysqld_sa 25289  root  txt    REG                8,3      940416  2752520 /bin/bash
mysqld_sa 25289  root  mem    REG                8,3      156936   265416 /lib64/ld-2.12.so
……

或者:lsof -p 25129 -p 25289 类似-c选项

  • 列出所有的网络连接
[root@db25440 ~]# lsof -i
COMMAND     PID      USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
rpcbind    1243       rpc    6u  IPv4     10298      0t0  UDP *:sunrpc 
rpcbind    1243       rpc    7u  IPv4     10300      0t0  UDP *:ircs 
rpcbind    1243       rpc    8u  IPv4     10301      0t0  TCP *:sunrpc (LISTEN)
rpcbind    1243       rpc    9u  IPv6     10303      0t0  UDP *:sunrpc 
……

-i [4、6、protocol、:port、@ip]

  • 列出带有条件的网络连接信息(没贴结果,自己敲一下)
lsof -i tcp
lsof -i udp
lsof -i :3306
lsof -i udp:8888
lsof -i tcp:8999
  • 某个进程组所打开的文件信息
[root@db25440 ~]# lsof -g ^0|wc -l
2070
[root@db25440 ~]# lsof -g 0|wc -l
424
[root@db25440 ~]# lsof |wc -l
2493

扩展一下查询进程所属组

[root@db25440 ~]# lsof  -g|awk '$3!~/PGID/{print $3}'|sort|uniq
0
1
10414
10417
10773
1177
……
[root@db25440 ~]# lsof -g 1177
COMMAND  PID PGID USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME
auditd  1177 1177 root  cwd    DIR                8,3     4096       2 /
auditd  1177 1177 root  rtd    DIR                8,3     4096       2 /
auditd  1177 1177 root  txt    REG                8,3   129112 4718858 /sbin/auditd
auditd  1177 1177 root  mem    REG                8,3    65928  262174 /lib64/libnss_files-2.12.so
auditd  1177 1177 root  DEL    REG                8,3           262158 /lib64/libc-2.12.so
auditd  1177 1177 root  DEL    REG                8,3           262166 /lib64/libm-2.12.so
auditd  1177 1177 root  DEL    REG                8,3           262186 /lib64/librt-2.12.so
auditd  1177 1177 root  DEL    REG                8,3           262182 /lib64/libpthread-2.12.so.#prelink#.goOWBw
auditd  1177 1177 root  DEL    REG                8,3           262168 /lib64/libnsl-2.12.so
auditd  1177 1177 root  mem    REG                8,3    40792  262234 /lib64/libwrap.so.0.7.6
auditd  1177 1177 root  DEL    REG                8,3           262151 /lib64/ld-2.12.so
auditd  1177 1177 root    0u   CHR                1,3      0t0    3973 /dev/null
auditd  1177 1177 root    1u   CHR                1,3      0t0    3973 /dev/null
auditd  1177 1177 root    2u   CHR                1,3      0t0    3973 /dev/null
auditd  1177 1177 root    3u  sock                0,6      0t0   10090 can't identify protocol
auditd  1177 1177 root    4u  unix 0xffff8808247bc1c0      0t0  119192 socket
auditd  1177 1177 root    5w   REG                8,3  3940523 8782708 /var/log/audit/audit.log
auditd  1177 1177 root    6u   REG                0,9        0    3971 [eventpoll]
auditd  1177 1177 root    8u   REG                0,9        0    3971 [eventfd]
[root@db25440 ~]# 
  • 根据文件描述列出对应的文件信息
    文件描述可以参考 选项小节
[root@db25440 ~]# lsof -d txt
COMMAND     PID      USER  FD      TYPE DEVICE  SIZE/OFF     NODE NAME
init          1      root txt       REG    8,3    150352  4718632 /sbin/init
kthreadd      2      root txt   unknown                           /proc/2/exe
migration     3      root txt   unknown                           /proc/3/exe
ksoftirqd     4      root txt   unknown                           /proc/4/exe
stopper/0     5      root txt   unknown                           /proc/5/exe
watchdog/     6      root txt   unknown                           /proc/6/exe
migration     7      root txt   unknown                           /proc/7/exe
……
  • 列出所有UNIX域Socket文件
[root@db25440 ~]# lsof -U|more
COMMAND     PID      USER   FD   TYPE             DEVICE SIZE/OFF      NODE NAME
init          1      root    7u  unix 0xffff8804276eaa40      0t0      7494 socket
init          1      root    8u  unix 0xffff880827183440      0t0     34914 socket
init          1      root    9u  unix 0xffff880426e9d840      0t0     13236 socket
udevd       461      root    4u  unix 0xffff8804276ead80      0t0      8221 socket
udevd       461      root    8u  unix 0xffff8804276eb0c0      0t0      8238 socket
udevd       461      root    9u  unix 0xffff880429049ac0      0t0      8239 socket
……

复合条件

多个查询条件都满足, 用 “-a” 参数,默认是 -o

  • 复合条件:列出某个用户以及某个程序所打开的文件信息(或的关系)
[root@db25440 ~]# lsof -u spotlight  -c mysql
COMMAND     PID      USER   FD   TYPE             DEVICE    SIZE/OFF       NODE NAME
sshd       2865 spotlight  cwd    DIR                8,3        4096          2 /
sshd       2865 spotlight  rtd    DIR                8,3        4096          2 /
……
mysql     10773      root  cwd    DIR                8,3        4096    8519681 /root
mysql     10773      root  rtd    DIR                8,3        4096          2 /
mysql     10773      root  txt    REG                8,3    10897395   10098587 /usr/bin/mysql
mysql     10773      root  mem    REG                8,3      156936     265416 /lib64/ld-2.12.so
……
  • 列出某个用户的所有活跃的网络端口
    演示-a 复合条件由或转为与
[root@db25440 ~]# lsof  -a -u spotlight -i
COMMAND  PID      USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
sshd    2865 spotlight    3u  IPv4 103973041      0t0  TCP 10.255.254.40:ssh->10.255.254.142:14261 (ESTABLISHED)
[root@db25440 ~]# 
[root@db25440 ~]# lsof -u spotlight -i
COMMAND     PID      USER   FD   TYPE             DEVICE SIZE/OFF       NODE NAME
rpcbind    1243       rpc    6u  IPv4              10298      0t0        UDP *:sunrpc 
rpcbind    1243       rpc    7u  IPv4              10300      0t0        UDP *:ircs 
rpcbind    1243       rpc    8u  IPv4              10301      0t0        TCP *:sunrpc (LISTEN)
rpcbind    1243       rpc    9u  IPv6              10303      0t0        UDP *:sunrpc 
rpcbind    1243       rpc   10u  IPv6              10305      0t0        UDP *:ircs 
rpcbind    1243       rpc   11u  IPv6              10306      0t0        TCP *:sunrpc (LISTEN
……

配合正则运算应用

支持非运算的选项有:-c、-p、-g、-s

  • 列出除了某个用户外的被打开的文件信息
[root@db25440 ~]# lsof   -u ^root|more
COMMAND     PID      USER   FD   TYPE             DEVICE    SIZE/OFF       NODE NAME
rpcbind    1243       rpc  cwd    DIR                8,3        4096          2 /
rpcbind    1243       rpc  rtd    DIR                8,3        4096          2 /
rpcbind    1243       rpc  txt    REG                8,3       54408    4718662 /sbin/rpcbind
rpcbind    1243       rpc  mem    REG                8,3       65928     262174 /lib64/libnss_files-2.12.so
rpcbind    1243       rpc  DEL    REG                8,3                 262158 /lib64/libc-2.12.so
rpcbind    1243       rpc  DEL    REG                8,3                 262182 /lib64/libpthread-2.12.so.#prelink#.goOWBw
rpcbind    1243       rpc  DEL    REG                8,3                 262164 /lib64/libdl-2.12.so
rpcbind    1243       rpc  mem    REG                8,3       36584     262278 /lib64/libgssglue.so.1.0.0
rpcbind    1243       rpc  DEL    REG                8,3                 262168 /lib64/libnsl-2.12.so
……
  • 列出除了某个进程号,其他进程号所打开的文件信息
[root@db25440 ~]# lsof -p 25129|grep mysql|wc -l
201
[root@db25440 ~]# lsof -p ^25129|grep mysql|wc -l
35
[root@db25440 ~]# 
  • 其他正则表达式的使用
    自己动手尝试更多……
[root@db25440 ~]# lsof  -c /^mysql$/
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
mysql   10773 root  cwd    DIR    8,3     4096   8519681 /root
mysql   10773 root  rtd    DIR    8,3     4096         2 /
mysql   10773 root  txt    REG    8,3 10897395  10098587 /usr/bin/mysql
mysql   10773 root  mem    REG    8,3   156936    265416 /lib64/ld-2.12.so
mysql   10773 root  mem    REG    8,3    22536    265419 /lib64/libdl-2.12.so
mysql   10773 root  mem    REG    8,3  1926760    265417 /lib64/libc-2.12.so
mysql   10773 root  mem    REG    8,3   145896    265418 /lib64/libpthread-2.12.so
mysql   10773 root  mem    REG    8,3    47112    262240 /lib64/librt-2.12.so
mysql   10773 root  mem    REG    8,3   599392    265420 /lib64/libm-2.12.so
mysql   10773 root  mem    REG    8,3    93320    262197 /lib64/libgcc_s-4.4.7-20120601.so.1
mysql   10773 root  mem    REG    8,3   989840  10097979 /usr/lib64/libstdc++.so.6.0.13
mysql   10773 root  mem    REG    8,3   134792    262219 /lib64/libtinfo.so.5.7
mysql   10773 root  mem    REG    8,3   142224    265885 /lib64/libncurses.so.5.7
mysql   10773 root  mem    REG    8,3 99158576  10093276 /usr/lib/locale/locale-archive
mysql   10773 root  mem    REG    8,3    65928    262174 /lib64/libnss_files-2.12.so
mysql   10773 root  mem    REG    8,3    26060  10093534 /usr/lib64/gconv/gconv-modules.cache
mysql   10773 root    0u   CHR  136,1      0t0         4 /dev/pts/1
mysql   10773 root    1u   CHR  136,1      0t0         4 /dev/pts/1
mysql   10773 root    2u   CHR  136,1      0t0         4 /dev/pts/1
mysql   10773 root    3u  sock    0,6      0t0 104041068 can't identify protocol
[root@db25440 ~]# 
[root@db25440 ~]# lsof  -c /^\(mysql\|sshd\)$/
COMMAND   PID      USER   FD   TYPE             DEVICE SIZE/OFF      NODE NAME
sshd     2842      root  cwd    DIR                8,3     4096         2 /
sshd     2842      root  rtd    DIR                8,3     4096         2 /
sshd     2842      root  txt    REG                8,3   567128  10100334 /usr/sbin/sshd
sshd     2842      root  DEL    REG                0,4          103972998 /dev/zero
……
sshd    10414      root    9u   CHR                5,2      0t0      5681 /dev/ptmx
sshd    10414      root   10u   CHR                5,2      0t0      5681 /dev/ptmx
mysql   10773      root  cwd    DIR                8,3     4096   8519681 /root
mysql   10773      root  rtd    DIR                8,3     4096         2 /
mysql   10773      root  txt    REG                8,3 10897395  10098587 /usr/bin/mysql
mysql   10773      root  mem    REG                8,3   156936    265416 /lib64/ld-2.12.so
mysql   10773      root  mem    REG                8,3    22536    265419 /lib64/libdl-2.12.so
mysql   10773      root  mem    REG                8,3  1926760    265417 /lib64/libc-2.12.so
mysql   10773      root  mem    REG                8,3   145896    265418 /lib64/libpthread-2.12.so
mysql   10773      root  mem    REG                8,3    47112    262240 /lib64/librt-2.12.so
……
[root@db25440 ~]# lsof  -c /^[mabc]ysql$/
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
mysql   10773 root  cwd    DIR    8,3     4096   8519681 /root
mysql   10773 root  rtd    DIR    8,3     4096         2 /
mysql   10773 root  txt    REG    8,3 10897395  10098587 /usr/bin/mysql
mysql   10773 root  mem    REG    8,3   156936    265416 /lib64/ld-2.12.so
mysql   10773 root  mem    REG    8,3    22536    265419 /lib64/libdl-2.12.so
mysql   10773 root  mem    REG    8,3  1926760    265417 /lib64/libc-2.12.so
mysql   10773 root  mem    REG    8,3   145896    265418 /lib64/libpthread-2.12.so
mysql   10773 root  mem    REG    8,3    47112    262240 /lib64/librt-2.12.so
mysql   10773 root  mem    REG    8,3   599392    265420 /lib64/libm-2.12.so
mysql   10773 root  mem    REG    8,3    93320    262197 /lib64/libgcc_s-4.4.7-20120601.so.1
mysql   10773 root  mem    REG    8,3   989840  10097979 /usr/lib64/libstdc++.so.6.0.13
mysql   10773 root  mem    REG    8,3   134792    262219 /lib64/libtinfo.so.5.7
mysql   10773 root  mem    REG    8,3   142224    265885 /lib64/libncurses.so.5.7
mysql   10773 root  mem    REG    8,3 99158576  10093276 /usr/lib/locale/locale-archive
mysql   10773 root  mem    REG    8,3    65928    262174 /lib64/libnss_files-2.12.so
mysql   10773 root  mem    REG    8,3    26060  10093534 /usr/lib64/gconv/gconv-modules.cache
mysql   10773 root    0u   CHR  136,1      0t0         4 /dev/pts/1
mysql   10773 root    1u   CHR  136,1      0t0         4 /dev/pts/1
mysql   10773 root    2u   CHR  136,1      0t0         4 /dev/pts/1
mysql   10773 root    3u  sock    0,6      0t0 104041068 can't identify protocol
[root@db25440 ~]# 

以上~ 欢迎补充~

阅读更多
版权声明:本文为博主原创文章,码字不易,转载请标明出处。 https://blog.csdn.net/yue530tomtom/article/details/80346874
文章标签: linux 命令 lsof
个人分类: Linux 命令 Linux shell
想对作者说点什么? 我来说一句

Linux命令 -- lsof

lsof

asd1126163471 asd1126163471

2017-06-22 11:07:16

阅读数:167

没有更多推荐了,返回首页

不良信息举报

linux命令---lsof

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭