Linux下監控及診斷工具lsof的使用方法
一、簡介
lsof是 linux 下的一個非常實用的系統級的監控、診斷工具。它可以用來列出被各種進程打開的文件信息,包括但不限於 pipes、sockets、directories、devices等等。因此,使用lsof你可以獲取任何被打開文件的各種信息。必須以 root 用戶的身份運行它才能夠充分地發揮其功能。
對於測試工程師學習的意義:可以很好的監聽、診斷問題。
二、安裝
CentOS系統下安裝lsof命令:yum install lsof,當看到成功標記,輸入y,退出即安裝完成。
查看8080埠號使用的進程: /usr/sbin/lsof –n –p –t –I :8080,顯出出的就是進程號。
三、用法
1、監控打開的文件、設備
1)查看文件、設備被哪些進程佔用 :lsof /dev/tty1
2)指定目錄、掛載點,可以看到有哪些進程打開了其下的文件: lsof /data/
3)列出某個目錄(掛載點 如 /home 也行)下被打開的文件:lsof +D /var/log/
4)列出被指定進程名打開的文件:lsof -c ssh -c init
5)監控進程(指定進程號,可以查看該進程打開的文件):lsof -p 2064
6)當你想要殺掉某個用戶所有打開的文件、設備:kill -9`lsof -t -u lakshmanan`
2、監控網路
1)查看指定埠有哪些進程在使用(lsof -i 列出所有的打開的網路連接):lsof -i:22
2)列出被某個進程打開所有的網路文件:lsof -i -a-p 234或lsof -i -a -c ssh
3)列出所有 tcp、udp 連接:lsof -i tcp或lsof -i udp
4)列出所有 NFS 文件:lsof -N -u lakshmanan –a
3、監聽用戶查看指定用戶打開的文件(lsof -u ^lakshmanan 可以排除某用戶): lsof -umessagebus4、監控應用程序
查看指定程序打開的文件: lsof -c firefox
1、
2、
3、
4、
5、其他技巧:
1)組合邏輯查詢條件
2)只有多個查詢條件都滿足, 用 "-a" 參數,默認是 -o:lsof -a -c bash -u root
3)基於給定的參數延時多少秒重複執行lsof:lsof -u lakshmanan -c init -a -r5
6、使用 lsof 查找打開的文件。
http://www.ibm.com/developerworks/cn/aix/library/au-lsof.html
點擊屏幕右上方分享給好友
讓閱讀分享成為一種習慣
※WEB測試瀏覽器兼容性問題你知多少?
※大牛教你在Oracle中如何整理數據表
TAG:門道科技集團 |