Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

第 81 章 lsof - list open files 檔案監控

lsof - list open files

目錄

81.1. $$
81.2. 監控檔案系統
81.3. 設備檔案
81.4. 用戶監控
81.5. 監控進程
81.6. 監控網絡
81.7. lsof 高級用法
81.8. 根據檔案描述列出對應的檔案信息
	
Command、PID 和 User 列分別表示進程的名稱 進程標識符 (PID) 和所有者名稱.

FD: 檔案描述符,應用程序通過檔案描述符識別該檔案.如cwd txt等
  (1) cwd : current working directory
      應用程序的當前工作目錄,這是該應用程序啟動的目錄,除非它本身對這個目錄進行更改
  (2) txt : program text (code and data)
      該類型的檔案是程式碼,如應用程序二進制檔案本身或共享庫,如上列表中顯示的 /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
      root目錄
 (13)  tr : kernel trace file (OpenBSD)
     內核跟蹤檔案
 (14) v86 : VP/ix mapped file
      VP/ix映射檔案
      
 (15) 0 : 表示標準輸出
 (16) 1 : 表示標準輸入
 (17) 2 : 表示標准錯誤
     初始打開每個應用程序時,都具有三個檔案描述符,從 0 到 2,分別表示 標準輸入 標準輸出 和 錯誤流. 正因為如此,大多數應用程序所打開的檔案的 FD 都是從3開始.
     一般在標準輸出 標准錯誤 標準輸入 後還跟着檔案狀態模式: r w u等
  (1) u : 表示該檔案被打開並處于讀取/寫入模式
  (2) r : 表示該檔案被打開並處于只讀模式
  (3) w : 表示該檔案被打開並處于
  (4) 空格 : 表示該檔案的狀態模式為unknow,且沒有鎖定
  (5) - : 表示該檔案的狀態模式為unknow,且被鎖定
      同時在檔案狀態模式後面,還跟着相關的鎖
  (1) N : for a Solaris NFS lock of unknown type;
  (2) r : for read lock on part of the file;
  (3) R : for a read lock on the entire file;
  (4) w : for a write lock on part of the file;
          檔案的部分寫鎖
  (5) W : for a write lock on the entire file
          整個檔案的寫鎖
  (6) u : for a read and write lock of any length;
  (7) U : for a lock of unknown type;
  (8) x : for an SCO OpenServer Xenix lock on part of the file;
  (9) X : for an SCO OpenServer Xenix lock on the      entire file;
  (10) space : if there is no lock.
  
TYPE :  檔案類型,與 FD 列相比,Type 列則比較直觀.
     根據具體操作系統的不同,您會發現將檔案和目錄稱為REG 和 DIR(在 Solaris 中,稱為 VREG 和 VDIR).
     其他可能的取值為 CHR 和 BLK,分別表示字元和塊設備;
     或者 UNIX、FIFO 和 IPv4,分別表示 UNIX 域套接字 先進先出 (FIFO) 隊列和網際協議 (IP) 套接字.
  (1) DIR : 表示目錄
  (2) CHR : 表示字元類型
  (3) BLK : 塊設備類型
  (4) UNIX : UNIX 域套接字
  (5) FIFO :先進先出 (FIFO) 隊列
  (6) IPv4 :網際協議 (IP) 套接字

Device  SIZE/OFF Node 和 NA 
      列涉及到檔案本身的信息,分別表示
          指定磁碟的名稱
          檔案的大小
          索引節點(檔案在磁碟上的標識)
          該檔案的確切名稱		
			
	
$ sudo lsof -c lighttpd
	

81.1. $$

neo@netkiller:~/workspace/Document$ lsof -p $$
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
zsh     4536  neo  cwd    DIR    8,6     4096     30 /home/neo/workspace/Document
zsh     4536  neo  rtd    DIR    8,1     4096      2 /
zsh     4536  neo  txt    REG    8,1   675792   6907 /bin/zsh4
zsh     4536  neo  mem    REG    8,1    68824  56594 /usr/lib/zsh/4.3.10/zsh/computil.so
zsh     4536  neo  mem    REG    8,1    41000  30570 /usr/lib/zsh/4.3.10/zsh/parameter.so
zsh     4536  neo  mem    REG    8,1    31512  53350 /usr/lib/zsh/4.3.10/zsh/zutil.so
zsh     4536  neo  mem    REG    8,1   153096  53354 /usr/lib/zsh/4.3.10/zsh/complete.so
zsh     4536  neo  mem    REG    8,1   290888  56596 /usr/lib/zsh/4.3.10/zsh/zle.so
zsh     4536  neo  mem    REG    8,1    10544  30579 /usr/lib/zsh/4.3.10/zsh/terminfo.so
zsh     4536  neo  mem    REG    8,1    51712  19594 /lib/libnss_files-2.11.1.so
zsh     4536  neo  mem    REG    8,1    43552  23798 /lib/libnss_nis-2.11.1.so
zsh     4536  neo  mem    REG    8,1    97256  15503 /lib/libnsl-2.11.1.so
zsh     4536  neo  mem    REG    8,1    35712  16431 /lib/libnss_compat-2.11.1.so
zsh     4536  neo  mem    REG    8,1    18704   1902 /lib/libattr.so.1.1.0
zsh     4536  neo  mem    REG    8,1  1568136   7583 /lib/libc-2.11.1.so
zsh     4536  neo  mem    REG    8,1   534832  11379 /lib/libm-2.11.1.so
zsh     4536  neo  mem    REG    8,1   323640   7295 /lib/libncursesw.so.5.7
zsh     4536  neo  mem    REG    8,1    14696  11378 /lib/libdl-2.11.1.so
zsh     4536  neo  mem    REG    8,1    18888   5099 /lib/libcap.so.2.17
zsh     4536  neo  mem    REG    8,1   136936   7487 /lib/ld-2.11.1.so
zsh     4536  neo  mem    REG    8,1   256324 145156 /usr/lib/locale/en_US.utf8/LC_CTYPE
zsh     4536  neo  mem    REG    8,1       54 131099 /usr/lib/locale/en_US.utf8/LC_NUMERIC
zsh     4536  neo  mem    REG    8,1     2454 145158 /usr/lib/locale/en_US.utf8/LC_TIME
zsh     4536  neo  mem    REG    8,1  1170770 145157 /usr/lib/locale/en_US.utf8/LC_COLLATE
zsh     4536  neo  mem    REG    8,1      286 145159 /usr/lib/locale/en_US.utf8/LC_MONETARY
zsh     4536  neo  mem    REG    8,1       57 145160 /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
zsh     4536  neo  mem    REG    8,1    26048  73711 /usr/lib/gconv/gconv-modules.cache
zsh     4536  neo  mem    REG    8,1       34 131105 /usr/lib/locale/en_US.utf8/LC_PAPER
zsh     4536  neo  mem    REG    8,1       77 131106 /usr/lib/locale/en_US.utf8/LC_NAME
zsh     4536  neo  mem    REG    8,1      155 145161 /usr/lib/locale/en_US.utf8/LC_ADDRESS
zsh     4536  neo  mem    REG    8,1       59 145162 /usr/lib/locale/en_US.utf8/LC_TELEPHONE
zsh     4536  neo  mem    REG    8,1       23 131109 /usr/lib/locale/en_US.utf8/LC_MEASUREMENT
zsh     4536  neo  mem    REG    8,1      373 145163 /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
zsh     4536  neo    0u   CHR  136,0      0t0      3 /dev/pts/0
zsh     4536  neo    1u   CHR  136,0      0t0      3 /dev/pts/0
zsh     4536  neo    2u   CHR  136,0      0t0      3 /dev/pts/0
zsh     4536  neo   10u   CHR  136,0      0t0      3 /dev/pts/0