|
lsof:list open file 列出已被打开的文件
选项:
+文件/目录 列出当前文件或目录是否进程在使用,常用
-u 指定用户,查询所属用户的进程打开的文件
-g 指定用户组
-d FD 显示指定文件描述符的进程
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port] 常用
实例:
列出当前系统所有进程打开的所有文件
[root@Management-Machine-140 ~]# lsof #就可以列出当前系统所有进程已打开的文件
如:vim install.log 文件
[root@Management-Machine-140 ~]# lsof | grep install.log
vim 6474 root 4u REG 8,6 16384 109 /root/.install.log.swp
第一列:进程名称
第二列:pid
第三列:所属用户
第四列:FD文件描述符,应用程序通过文件描述符识别该文件
第五列:文件类型
第六列:磁盘名称
第七列:文件大小
第八列:索引节点(在磁盘上的索引节点)
第九列:文件名称 恢复已删除的文件
[root@Management-Machine-140 ~]# cp install.log install.log1
[root@Management-Machine-140 ~]# vim install.log1 #shell中打开文件
[root@Management-Machine-140 ~]# rm -f install.log1 #重新打开文件
[root@Management-Machine-140 ~]# lsof | grep install.log1
vim 6487 root 4u REG 8,6 16384 129 /root/.install.log1.swp
[root@Management-Machine-140 ~]# cat /proc/6487/fd/4 >>/root/install.log1 #即可恢复 查看某个端口是否正在运行
[root@Management-Machine-140 ~]# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1135 root 3u IPv4 11545 0t0 TCP *:ssh (LISTEN)
[root@WebA-136 ~]# lsof -i :111
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rpcbind 938 rpc 6u IPv4 10422 0t0 UDP *:sunrpc 查看某个文件系统是否正在使用(有使用无法卸载)
[root@Management-Machine-140 ~]# lsof /tmp
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 6545 root cwd DIR 8,6 4096 14 /tmp #提示bash正在开启,且所在目录是tmp
|
|
|