linux lsof

lsof

1.1 lsof

lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。

2.1 选项

#lsof 打开所有文件
lsof

#查看谁正在使用某个文件
lsof /tmp/aa

#递归查看某个目录的文件信息,对应目录下的文件夹和子文件都会被列出
lsof +D /dir/dir/

#查看某个用户打开的文件信息
lsof -u admin

#列出某个程序打开的文件
lsof -c mysql
lsof -c mysql -c nginx #列出多个程序

#列出某个用户外被打开的文件
lsof -u ^root

#列出某个用户下某个程序打开的文件
lsof -u admin -c mysql

#通过某个进程号打开这个进程占用的文件
lsof -p 1

#列出多个进程号占用的文件
lsof -p 122,123,121

#列出所有的网络链接
lsof -i 

#列出所有的tcp网络链接
lsof -i tcp

#列出所有的udp网路链接
lsof -i udp

#列出谁在使用某个端口
lsof -i :3306

#列出谁在使用某个特定的udp端口
lsof -i udp:55

#列出某个用户所有活动的网络端口
lsof -a -u admin -i

#列出所有的网络文件
lsof -N

#域名socket文件
lsof -u

#列出某个用户组打开的文件信息
lsof -g 5553

#根据文件描述列出对应的文件信息
lsof -d description(like 2)

#根据文件描述范围列出文件信息
lsof -d 2-3

3.1 信息详情

3.1.1 各列信息

  • COMMAND:进程的名称
  • PID:进程标识符
  • PPID:父进程标识符(需要指定-R参数)
  • USER:进程所有者
  • PGID:进程所属组
  • FD:文件描述符,应用程序通过文件描述符识别该文件。
  • DEVICE:指定磁盘的名称
  • SIZE:文件的大小
  • NODE:索引节点(文件在磁盘上的标识)
  • NAME:打开文件的确切名称

3.1.2 FD文件描述符列表

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

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

  • u:表示该文件被打开并处于读取/写入模式。
  • r:表示该文件被打开并处于只读模式。
  • w:表示该文件被打开并处于。
  • 空格:表示该文件的状态模式为unknow,且没有锁定。
  • -:表示该文件的状态模式为unknow,且被锁定。

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

  • N:for a Solaris NFS lock of unknown type(对于未知类型的Solaris NFS锁);
  • r:for read lock on part of the file(用于对文件的一部分进行读取锁定);
  • R:for a read lock on the entire file(整个文件的读取锁定);
  • w:for a write lock on part of the file;(文件的部分写锁)
  • W:for a write lock on the entire file;(整个文件的写锁)
  • u:for a read and write lock of any length(对于任意长度的读写锁);
  • U:for a lock of unknown type(对于未知类型的锁);
  • x:for an SCO OpenServer Xenix lock on part of the file(对于文件的sco openserver xenix锁);
  • X:for an SCO OpenServer Xenix lock on the entire file(对于整个文件的sco openserver xenix锁);
  • space:if there is no lock(如果没有锁).
posted @ 2022-04-20 18:33  liwenchao1995  阅读(182)  评论(0编辑  收藏  举报