lsof(list open files)是一個列出當前系統打開文件的工具。在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。
可以被打開的文件可以是:1.普通的文件,2.目錄 3.網絡文件系統的文件,4.字符設備文件 5.(函數)共享庫 6.管道,命名管道 7.符號鏈接 8.底層的socket字流,網絡socket,unix域名........還有其他很多.
在終端下輸入lsof命令即可顯示系統打開的文件,因為 lsof 需要訪問核心內存和各種文件,所以必須以 root 用戶的身份運行它才能夠充分地發揮其功能。
一、查看某端口被什么進程占用
一次在客戶現場,幫客戶調TOMCAT,啟動TOMCAT的時候報8080端口被占用
查看某端口被某個進程占用
#lsof -i :8080
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
httpd 13017 root 490u IPv4 23881972 TCP *:8080 (LISTEN)
從這里看出是被HTTPD進程占用,之前客戶說是IBM的IHS軟件已停止,看來并沒有真正停止導致端口被占用
#kill -9 13017
殺掉這個進程后,再啟TOMCAT后正常了
二、查看所屬用戶進程所打開的某種類型的文件
比如查看root用戶進程所打開的文件類型為txt的文件
# lsof -a -u root -d txt
auditd 2639 root txt REG 3,2 102136 44536 /sbin/auditd
owcimomd 2643 root txt REG 3,2 24560 90676 /usr/sbin/owcimomd
irqbalanc 2737 root txt REG 3,2 25880 62557 /usr/sbin/irqbalance
nscd 2771 root txt REG 3,2 129908 44802 /usr/sbin/nscd
vsftpd 2809 root txt REG 3,2 129792 132934 /usr/sbin/vsftpd
xinetd 2812 root txt REG 3,2 165952 60679 /usr/sbin/xinetd
smpppd 2825 root txt REG 3,2 193752 99524 /usr/sbin/smpppd
sshd 2827 root txt REG 3,2 376768 98762 /usr/sbin/sshd
zmd 2847 root txt REG 3,2 1895856 86524 /usr/bin/mono
gdm 2893 root txt REG 3,2 268424 126353 /opt/gnome/sbin/gdm
三、查找誰在使用某個文件系統
在卸載文件系統時,如果該文件系統中有任何打開的文件,操作通常將會失敗。那么通過lsof可以找出那些進程在使用當前要卸載的文件系統。
# lsof /testdata/
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 4208 root cwd DIR 3,1 4096 2 /testdata/
vim 4230 root cwd DIR 3,1 4096 2 /testdata/
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文標題:lsof命令的幾個妙用-創新互聯
本文鏈接:http://vcdvsql.cn/article8/pghip.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、標簽優化、域名注冊、外貿網站建設、網站制作、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯