lsof是一个增强的强大的命令行实用程序,适用于unix系统.它列出了打开的文件,显示有关它们的信息.由于大多数内容都是unix系统上的文件,因此lsof可以为系统管理员提供大量有用的诊断数据.
有哪些使用lsof最常用和最有用的方法,以及使用哪些命令行开关?
显示与给定相关的所有网络port
:
lsof -iTCP -i :port lsof -i :22
要显示与特定主机的连接,请使用 @host
lsof -i@192.168.1.5
使用@host:port
lsof -i@192.168.1.5:22 显示基于主机和端口的连接
grep
ping for LISTEN
显示系统正在等待连接的端口:
lsof -i| grep LISTEN
显示给定用户打开的内容-u
:
lsof -u daniel
查看命令正在使用的文件和网络连接 -c
lsof -c syslog-ng
通过该-p
开关,您可以查看给定的进程ID已打开的内容,这有助于了解有关未知进程的更多信息:
lsof -p 10075
该-t
选项只返回一个PID
lsof -t -c Mail
一起使用-t
和-c
选项,您可以HUP
进行处理
kill -HUP $(lsof -t -c sshd)
您还可以使用-t
with -u
来杀死用户打开的所有内容
kill -9 $(lsof -t -u daniel)
lsof -i :port
会告诉你哪些程序正在侦听特定端口.
lsof +D /some/directory
将递归显示目录中打开的所有文件.+ d仅适用于顶级.
当您具有较高的IO等待%,与在特定FS上使用相关并希望查看哪些进程正在咀嚼您的io时,这非常有用.
lsof -i
将提供一个开放网络套接字列表.该-n
选项将阻止DNS查找,这在网络连接缓慢或不可靠时很有用.
查看正在运行的应用程序或守护程序已打开的文件:
lsof -p pid
其中pid是应用程序或守护程序的进程ID.
lsof +f -- /mountpoint
使用挂载在/ mountpoint上的挂载上的文件列出进程.特别适用于查找哪些进程使用已安装的USB记忆棒或CD/DVD.