losf命令詳解

一、概念:
lsof全名list opened files,也就是列舉系統中已經被打開的文件,進程打開的埠(TCP、UDP)。linux環境中,任何事物都是文件,設備是文件,目錄是文件,甚至sockets也是文件。所以,用好lsof命令,對日常的linux管理非常有幫助,也可以對系統監測以及排錯將是很有幫助
使用lsof –help查看常用的數據語法:

 

二、展示的欄位含義:

1、COMMAND:默認以9個字元長度顯示命令名稱。可使用+c參數指定顯示的寬度,若+c後跟的參數為零,則顯示命令的全名(-c)

2、PID:進程的ID號(-p )

3、PPID:父進程標識符(需要指定-R參數)

4、TID:如果是一個執行緒,顯示執行緒 ID

5、USER:命令的執行UID或系統中登陸的用戶名稱。(-u)

6、FD:文件描述符 File Descriptor number,應用程式通過文件描述符識別該文件(-d)

7、TYPE:類型

8、DEVICE:使用character special、block special表示的設備號

9、SIZE/OFF:文件的大小,如果不能用大小表示的,會留空。

10、NODE:本地文件的inode id,索引節點(文件在磁碟上的標識)

11、NAME:掛載點和文件的全路徑(鏈接會被解析為實際路徑),或者連接雙方的地址和埠、狀態等

其中:FD文件描述符列表

 

(1)cwd:表示current work dirctory,即:應用程式的當前工作目錄,這是該應用程式啟動的目錄,除非它本身對這個目錄進行更改
(2)txt:該類型的文件是程式程式碼,如應用程式二進位文件本身或共享庫,如上列表中顯示的 /sbin/init 程式
(3)lnn:library references (AIX)(庫引用);
(4)er:FD information error (see NAME column)(fd資訊錯誤);
(5)jld:jail directory (FreeBSD)(監控目錄);
(6)ltx:shared library text (code and data)(共享庫文本);
(7)mxx :hex memory-mapped type number xx(十六進位記憶體映射類型號xx);
(8)m86:DOS Merge mapped file(DOS合併映射文件);
(9)mem:memory-mapped file(記憶體映射文件);
(10)mmap:memory-mapped device(記憶體映射設備);
(11)pd:parent directory(父目錄);
(12)rtd:root directory(跟目錄);
(13)tr:kernel trace file (OpenBSD)(內核跟蹤文件);
(14)v86 VP/ix mapped file(VP/IX映射文件);
(15)0:表示標準輸出
(16)1:表示標準輸入
(17)2:表示標準錯誤

 

三、lsof常用語句詳解

1. losf 文件名

作用:顯示這個文件(ufile)被哪個程式調用

lsof /var/lib/mysql

 

 2. lsof  -c  systemd

作用:顯示systemd進程使用了哪些文件

 

 

3. lsof  -p pid 

作用:顯示pid進程使用了哪些文件

 

 

4. lsof  -i:埠號xx

作用:顯示xx埠被哪些ip使用

 

 

5. lsof  +d  文件目錄

作用: 顯示文件目錄下被打開的文件,不遞歸

 

 

 

6. lsof  +D  文件目錄

作用: 顯示文件目錄下被打開的文件,遞歸

 

 

7. lsof  -u  username

作用:顯示用戶打開的文件