lsof(list open files)是乙個列出當前系統開啟檔案的工具。
在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體。所以如傳輸控制協議 (tcp) 和使用者資料報協議 (udp) 套接字等,系統在後台都為該應用程式分配了乙個檔案描述符,無論這個檔案的本質如何,該檔案描述符為應用程式與基礎作業系統之間的互動提供了通用介面。因為應用程式開啟檔案的描述符列表提供了大量關於這個應用程式本身的資訊,因此通過lsof工具能夠檢視這個列表對系統監測以及排錯將是很有幫助的。
lsof [引數] [檔案]
在終端下輸入lsof即可顯示系統開啟的檔案,因為 lsof 需要訪問核心記憶體和各種檔案,所以必須以 root 使用者的身份執行它才能夠充分地發揮其功能。
每行顯示乙個開啟的檔案,若不指定條件預設將顯示所有程序開啟的所有檔案。lsof輸出各列資訊的意義如下:
command:程序的名稱
pid:程序識別符號
user:程序所有者
fd:檔案描述符,應用程式通過檔案描述符識別該檔案
type:檔案型別
device:指定檔案磁碟的名稱
size:檔案的大小
node:索引節點
name:開啟檔案的確切名稱
lsof 常見的用法是查詢應用程式開啟的檔案的名稱和數目。可用於查詢出某個特定應用程式將日誌資料記錄到何處,或者正在跟蹤某個問題。
lsof filename 顯示開啟指定檔案的所有程序
例題:檢視22埠現在執行的狀況
[root@mail ~]# lsof -i 22
看所屬root使用者程序所開啟的檔案型別為txt的檔案
[root@mail ~]# lsof -a -u root -d txt
command pid user fd type device size/off node name
systemd 1 root txt reg 253,0 1612152 16928141 /usr/lib/systemd/systemd
kthreadd 2 root txt unknown /proc/2/exe
ksoftirqd 3 root txt unknown /proc/3/exe
kworker/0 5 root txt unknown /proc/5/exe
kworker/u 6 root txt unknown /proc/6/exe
migration 7 root txt unknown /proc/7/exe
rcu_bh 8 root txt unknown /proc/8/exe
rcu_sched 9 root txt unknown /proc/9/exe
檢視誰正在使用/bin/bas**件,也就是說查詢/bin/bas**件相關的程序
[root@mail ~]# lsof /bin/bash
command pid user fd type device size/off node name
bash 1048 root txt reg 253,0 960472 50334124 /usr/bin/bash
bash 1077 root txt reg 253,0 960472 50334124 /usr/bin/bash
Lsof命令及用法
lsof options filename 如果提示沒有安裝lsof這個命令,centos可以執行 yum install lsof 安裝,debian可以執行 apt get install lsof 安裝。lsof filename 顯示開啟指定檔案的所有程序 lsof a 表示兩個引數都必須滿...
lsof的一般用法
lsof list open files 是乙個檢視當前系統檔案的工具。在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體。如傳輸控制協議 tcp 和使用者資料報協議 udp 套接字等,系統在後台都為該應用程式分配了乙個檔案描述符,該檔案描述符提...
82 7 lsof 高階用法
組合引數 lsof a c bash u root command pid user fd type device size off node name bash 1394 root cwd dir 8,2 4096 4849665 root bash 1394 root rtd dir 8,2 4...