共计 2470 个字符,预计需要花费 7 分钟才能阅读完成。
大家好!我是 Sean!
持续咱们的 Linux 零碎中的性能监控命令,明天要分享的是 lsof。
lsof (list open files) (一个列出以后零碎关上文件的工具)
在 linux 环境下,万物皆文件,通过文件不仅仅能够拜访惯例数据,还能够拜访网络连接和硬件,所以如传输控制协议 (TCP) 和用户数据报协定 (UDP) 套接字等,零碎在后盾都为该应用程序调配了一个文件描述符,无论这个文件的实质如何,该文件描述符为应用程序与根底操作系统之间的交互提供了通用接口。因为应用程序关上文件的描述符列表提供了大量对于这个应用程序自身的信息,因而通过 lsof 工具可能查看这个列表对系统监测以及排错将是很有帮忙的。lsof 如许弱小!
命令参数
-a:列出关上文件存在的过程;-c< 过程名 >:列出指定过程所关上的文件;-g:列出 GID 号过程详情;-d< 文件号 >:列出占用该文件号的过程;+d< 目录 >:列出目录下被关上的文件;+D< 目录 >:递归列出目录下被关上的文件;-n< 目录 >:列出应用 NFS 的文件;-i< 条件 >:列出符合条件的过程。(4、6、协定、: 端口、@ip)-p< 过程号 >:列出指定过程号所关上的文件;-u:列出 UID 号过程详情;-h:显示帮忙信息;-v:显示版本信息。
lsof 输入各列的意义
COMMAND:过程的名称
PID:过程标识符
PPID:父过程标识符(须要指定 - R 参数)USER:过程所有者
PGID:过程所属组
FD:文件描述符,应用程序通过文件描述符辨认该文件
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)NAME:关上文件的确切名称
FD 列显示内容含意
1. cwd:示意 current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它自身对这个目录进行更改
2. txt:该类型的文件是程序代码,如应用程序二进制文件自身或共享库,如上列表中显示的 /sbin/init 程序
3. lnn:library references (AIX);
4. er:FD information error (see NAME column);
5. jld:jail directory (FreeBSD);
6. ltx:shared library text (code and data);
7. mxx:hex memory-mapped type number xx.
8. m86:DOS Merge mapped file;
9. mem:memory-mapped file;
10. mmap:memory-mapped device;
11. pd:parent directory;
12. rtd:root directory;
13. tr:kernel trace file (OpenBSD);
14. v86 VP/ix mapped file;
15. 0:示意规范输入
16. 1:示意规范输出
17. 2:示意规范谬误
个别在规范输入、规范谬误、规范输出后还跟着文件状态模式:1. u:示意该文件被关上并处于读取 / 写入模式。2. r:示意该文件被关上并处于只读模式。3. w:示意该文件被关上并处于。4. 空格:示意该文件的状态模式为 unknow,且没有锁定。5. -:示意该文件的状态模式为 unknow,且被锁定。同时在文件状态模式前面,还跟着相干的锁:1. N:for a Solaris NFS lock of unknown type;
2. r:for read lock on part of the file;
3. R:for a read lock on the entire file;
4. w:for a write lock on part of the file;(文件的局部写锁)5. W:for a write lock on the entire file;(整个文件的写锁)6. u:for a read and write lock of any length;
7. U:for a lock of unknown type;
8. x:for an SCO OpenServer Xenix lock on part of the file;
9. X:for an SCO OpenServer Xenix lock on the entire file;
10. space:if there is no lock.
TYPE 列显示内容含意
1. DIR:示意目录。2. CHR:示意字符类型。3. BLK:块设施类型。4. UNIX:UNIX 域套接字。5. FIFO:先进先出 (FIFO) 队列。6. IPv4:网际协议 (IP) 套接字。7. REG:一般文件
常用命令
查看所有曾经关上的文件,不须要跟参数即可,不过输入的内容比拟多
lsof
查看哪些程序正在应用某个文件,跟上文件的全门路名称或相对路径名称
lsof [全门路文件名 / 相对路径文件名]
循环递归的查看某个门路下所有文件正在被哪些程序应用,跟上目录即可
lsof +D [门路]
查看某个用户关上的文件信息,跟上用户名参数
lsof -u [用户名]
查看某种程序关上的文件信息,跟上关键字,就会打印出以关键字结尾程序关上的文件
lsof -c [关键字]
列出多种程序关上的文件信息,跟上多个 - c 即可,和上条命令差不多
lsof -c [关键字 A] -c [关键字 B]
列出除了某个用户外的被关上的文件信息,^ 这个符号就是过滤掉 root 用户关上的过程
lsof -u ^root
显示某个过程号关上的文件信息
lsof -p [过程号]
列出多个过程号对应的文件信息
lsof -p [过程号 1],[过程号 2],[过程号 3]
列出除了某个过程号,其余过程号所关上的文件信息
lsof -p ^[过程号]
查看所有的网络连接
lsof -i
查看所有 tcp 网络连接信息
lsof -i tcp
查看所有 udp 网络连接信息
lsof -i udp
查看某个端口应用信息
lsof -i :22
查看某个特定的 udp 端口信息
lsof -i udp:42078
查看某个特定的 tcp 端口信息
lsof -i tcp:39498
思维导图总结
明天的分享就到这里啦!感激各位的浏览!码字不易,如果本文对你有帮忙的话,帮忙点个赞吧~ 哈哈。
性能监控命令系列完结后会将思维导图分享进去,欢送关注公众号“程序员 Sean”。
正文完