lsof是unix系統中一個功能強大的命令行工具。它列出了打開的文件,顯示關於它們的信息。而且由於大多數所有東西都是unix系統上的文件,lsof可以爲系統管理員提供大量有用的診斷數據。lsof生存指南
什麼是使用lsof最常用和最實用的方法,以及使用哪種命令行開關?
lsof是unix系統中一個功能強大的命令行工具。它列出了打開的文件,顯示關於它們的信息。而且由於大多數所有東西都是unix系統上的文件,lsof可以爲系統管理員提供大量有用的診斷數據。lsof生存指南
什麼是使用lsof最常用和最實用的方法,以及使用哪種命令行開關?
lsof -i
將提供開放網絡套接字列表。 -n
選項將阻止DNS查找,這在您的網絡連接速度較慢或不可靠時非常有用。
查看哪些文件正在運行的應用程序或守護程序已經打開:
lsof -p pid
凡PID是應用程序或守護進程的進程ID。
lsof -i :port
會告訴你什麼程序正在特定端口上偵聽。
它不限於「監聽」,所以如果你指定`lsof -i:8080`,並且你有一堆進程連接到端口8080上的代理服務器,你也可以得到它們。 – 2014-10-01 01:57:49
若要顯示所有網絡相關的給定port
:
lsof -iTCP -i :port
lsof -i :22
要顯示一個特定的主機連接,使用基於主機上@host
lsof [email protected]
顯示連接和使用@host:port
端口lsof [email protected]。5:22
grep
平爲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
與-u
殺一切用戶打開
kill -9 $(lsof -t -u daniel)
來源:http://danielmiessler.com/study/lsof/ – 2014-10-20 07:34:44
lsof +f -- /mountpoint
列出使用文件的安裝安裝在/掛載點的過程。特別適用於查找使用安裝的USB記憶棒或CD/DVD的過程。
lsof +D /some/directory
將以遞歸方式顯示目錄中打開的所有文件。 + d僅用於頂層。
當你有很高的IO等待百分比時,這對於在特定的FS上使用相關,並希望看到哪些進程正在咀嚼你的io,這非常有用。
`lsof -i`將* only *顯示您可以在您的名稱空間中訪問的套接字(並且通過內省將它們視爲「internet」套接字,而不僅僅是任何類型的網絡套接字)。否則,'sock'類型的句柄將不會顯示在列表中。 – 2013-08-06 21:17:46