lsof快速起步
/ / 点击 /查看对某个文件的使用情况
查看哪些进程对某个文件进行了调用: $ lsof /etc/passwd
查看对文件系统的使用
/tmp目录被垃圾文件塞满了, 但是, 用ls 又看不到太大文件, 谁干的? $ lsof /tmp
查找打开,但是不能连接的文件
一个进程打开一个文件, 然后将其设为 unlinked 状态, 则此文件资源仍能被进程使用, 但是其访问路径已经被删除了. 因此, 使用ls不能将其列出. 只有当进程结束时, 才能释放文件占用的资源 查找unlinked 文件, 选项 +L, 作用: 列出打开文件的连接数 $lsof +L 指定连接数的上限$lsof +L1 同时指定文件系统, 则需要使用 -a(AND) 选项 $ lsof -a +L1 /home
无法卸载
查看谁令mount的分区无法卸载 $ lsof <file_system_name>
查看监听socket
查看网络服务 $ lsof -i
查看某个网络连接
$ lsof -i@aaa.bbb.ccc $ lsof -iTCP@aaa.bbb.ccc:ftp-data 指定协议 $ lsof -i4 指定IP版本 $ lsof -i6
识别 Netstat 连接
例如: netstat -p -t -n 的输出为: Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 218.56.203.246:52634 202.109.72.72:7000 ESTABLISHED
则可以:tony@tony:~$ lsof -iTCP@202.109.72.72:7000 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME xchat 4505 tony 12u IPv4 5775 TCP 218.56.203.246:52634->202.109.72.72:afs3-fileserver (ESTABLISHED)
查找针对某个命令打开的文件
使用命令的PID $ lsof -p
查看某个用户的操作
$ id -u tony 1000
$ lsof -u1000 or $ lsof -utony
$ lsof -u^tony 则是取反的意思