lsof

lsof

yum -y install lsof
全名list open files,也就是列举系统中已经被打开的文件
被打开的文件可以是 - d s c b s l 等各种文件,

lsof需要的权限较高,必须使用root来执行,因为在运行的时候需要访问很多的核心文件,
输出内容:

显示打开指定文件的所有进程
lsof filename

显示command列中包含指定字符的进程所打开的文件
lsof -c command

显示属于user进程打开的文件
lsof -u username

显示属于某个组的进程情况
lsof -g gid

显示目录下被进程打开的文件
lsof +d /dir/
lsof +D /dir/ 同时会搜索目录下的所有目录,时间相对较长。

显示指定文件描述符的进程
lsof -d FD

不将IP转换成hostname,默认是不加 -n的
lsof -n

找出符合条件的进程情况
lsof -i
lsof -i [46] [protocol] [@hostname|hostaddr] [:service|port]
46 指的是IPV4 IPV6
protocol tcp udp
hostname 主机名
hostaddr ip地址
service service名称
port 端口号
注意 :
应用:
查看固定端口被哪个进程占用
lsof -i:5000 查看5000端口的占用情况

卸载批判通知正忙

假如使用umount卸载一块磁盘,显示 device is busy,这时就可以确认谁在占用这个磁盘
lsof /挂载点文件
然后根据情况处理进程,没有进程占用这个磁盘即可卸载

lsof恢复删除的文件

找到正在使用被删除文件的进程,到/proc/pid/相应的文件。再拷贝到原目录下,即可恢复
前提条件
必须是文件正在被某个进程所使用的,而且该进程未停止。一直拥有打开文件的句柄

例如,恢复已删除的/vat/log/message

原文地址:https://www.cnblogs.com/cizao/p/11484566.html