【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。
lsof(list open files)是一个查看以后系统文件的工具。在linux环境下,任何事物都以文件的模式存在,通过文件不仅仅能够拜访惯例数据,还能够拜访网络连接和硬件。如传输控制协议 (TCP) 和用户数据报协定 (UDP) 套接字等,零碎在后盾都为该应用程序调配了一个文件描述符,该文件描述符提供了大量对于这个应用程序自身的信息。
装置lsof
Centos
> yum install lsof -y
Ubuntu
> sudo apt-get install lsof -y
命令格局
lsof [参数][文件]
命令性能
用于查看你过程开打的文件,关上文件的过程,过程关上的端口(TCP、UDP)。找回/复原删除的文件。是非常不便的零碎监督工具,因为lsof
须要拜访外围内存和各种文件,所以须要root用户执行。
lsof关上的文件能够是:
- 1.一般文件
- 2.目录
- 3.网络文件系统的文件
- 4.字符或设施文件
- 5.(函数)共享库
- 6.管道,命名管道
- 7.符号链接
- 8.网络文件(例如:NFS file、网络socket,unix域名socket)
- 9.还有其它类型的文件,等等
命令参数
- -a 列出关上文件存在的过程
- -c<过程名> 列出指定过程所关上的文件
- -g 列出GID号过程详情
- -d<文件号> 列出占用该文件号的过程
- +d<目录> 列出目录下被关上的文件
- +D<目录> 递归列出目录下被关上的文件
- -n<目录> 列出应用NFS的文件
- -i<条件> 列出符合条件的过程。(4、6、协定、:端口、 @ip )
- -p<过程号> 列出指定过程号所关上的文件
- -u 列出UID号过程详情
- -h 显示帮忙信息
- -v 显示版本信息
列出零碎所有关上的文件
> lsof | more
会有很多数据, 下面只截取了一部分
字段阐明
- COMMAND:过程的名称
- PID:过程标识符
- PPID:父过程标识符(须要指定-R参数)
- USER:过程所有者
- PGID:过程所属组
- FD:文件描述符,应用程序通过文件描述符辨认该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等,常见的文件类型
- (1)DIR:示意目录
- (2)CHR:示意字符类型
- (3)BLK:块设施类型
- (4)UNIX: UNIX 域套接字
- (5)FIFO:先进先出 (FIFO) 队列
- (6)IPv4:网际协议 (IP) 套接字
- DEVICE:指定磁盘的名称
- SIZE:文件的大小
- NODE:索引节点(文件在磁盘上的标识)
- NAME:关上文件的确切名称
FD 阐明
查看/bin/bash
被谁占用
> lsof /bin/bashCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEbash 14443 root txt REG 253,1 960392 140072 /usr/bin/bash
递归查看当前目录文件信息
> lsof .COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEbash 14443 root cwd DIR 253,1 4096 131073 .lsof 16522 root cwd DIR 253,1 4096 131073 .lsof 16523 root cwd DIR 253,1 4096 131073 .
子目录文件占用状况也显示进去
> lsof +D .COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEbash 14443 root cwd DIR 253,1 4096 131073 .lsof 16426 root cwd DIR 253,1 4096 131073 .lsof 16427 root cwd DIR 253,1 4096 131073 .YDService 17532 root 27r REG 253,1 79613 131087 ./.bash_history
不应用+D选项,遍历查看某个目录的所有文件信息的办法
> lsof | grep "rumenz/temp"
列出某个用户关上的文件信息
> lsof -u root | more
-u 选项,u其实是user的缩写
列出某个程序过程所关上的文件信息
> lsof -c mysql
列出多个过程多个关上的文件信息
> lsof -c mysql nginx
列出除了某个用户外的被关上的文件信息
> lsof -u ^root
通过某个过程号显示该进行关上的文件
> lsof -p 123
列出多个过程号对应的文件信息
> lsof -p 123,456,789
列出除了某个过程号,其余过程号所关上的文件信息
> lsof -p ^123
列出所有的网络连接
> lsof -i
列出谁在应用某个端口
> lsof -i :3306
同时指定多个端口
> lsof -i :3306,80
列出谁在应用某个特定的udp端口
> lsof -i udp:123
特定的tcp端口
> lsof -i tcp:80
列出所有tcp 网络连接信息
> lsof -i tcp
列出所有udp网络连接信息
> lsof -i tcp
列出某个用户的所有沉闷的网络端口
> lsof -a -u root -i
列出所有网络文件系统
> lsof -N
列出COMMAND列中蕴含字符串" sshd",且文件描述符的类型为txt的文件信息
> lsof -c sshd -a -d txtCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 4400 root txt REG 253,1 823744 143872 /usr/sbin/sshdsshd 14432 root txt REG 253,1 823744 143872 /usr/sbin/sshd
列出被过程号为123的过程所关上的所有IPV4 network files
> lsof -i 4 -a -p 123
-i 4
代表的是IPV4
,-i 6
代表的是IPV6
某个用户组所关上的文件信息
> lsof -g 123
依据文件形容列出对应的文件信息
> lsof -d txt> lsof -d 1> lsof -d 2
0示意规范输出,1示意规范输入,2示意规范谬误,从而可知:所以大多数应用程序所关上的文件的 FD 都是从 3 开始
依据文件形容范畴列出文件信息
> lsof -d 1-2
原文链接:https://rumenz.com/rumenbiji/...
微信公众号:入门小站
【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。