生存指南

时间:2020-03-06 14:28:09  来源:igfitidea点击:

lsof是用于unix系统的功能强大的命令行实用程序。它列出了打开的文件,并显示有关它们的信息。而且由于大多数内容都是UNIX系统上的文件,因此lsof可以为sysadmins提供大量有用的诊断数据。

使用lsof的最常用和有用的方法有哪些?为此使用了哪些命令行开关?

解决方案

lsof -i将提供一个开放的网络套接字列表。 -n选项将阻止DNS查找,当网络连接缓慢或者不可靠时,此选项很有用。

查看正在运行的应用程序或者守护程序打开了哪些文件:

lsof -p pid

其中pid是应用程序或者守护程序的进程ID。

lsof -i :port

会告诉我们在特定端口上正在侦听哪些程序。

要显示与给定"端口"相关的所有联网:

lsof -iTCP -i :port
lsof -i :22

要显示与特定主机的连接,请使用@ host

lsof [email protected]

使用@host:port显示基于主机和端口的连接
lsof [email protected]:22

LISTEN的grep ping显示系统正在等待连接的端口:

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和-u一起使用来杀死用户打开的所有内容

kill -9 $(lsof -t -u daniel)

lsof +f -- /mountpoint

列出使用在/ mountpoint挂载的挂载上的文件的进程。对于查找正在使用已安装的USB棒或者CD / DVD的进程特别有用。