天天看點

Linux lsof指令:列出程序調用或打開的檔案資訊

1、指令及其意義

指令:lsof (list opened files)

意義:通過 lsof 指令,我們就可以根據檔案找到對應的程序資訊,也可以根據程序資訊找到程序打開的檔案。

2、指令的格式

3、選項

  • -c 字元串 隻列出以字元串開頭的程序打開的檔案。
  • +d 目錄名 列出某個目錄中所有被程序調用的檔案。
  • -u 使用者名 隻列出某個使用者的程序打開的檔案。
  • -p pid 列出某個 PID 程序打開的檔案。

4、舉例

例1:檢視所有程序調用的檔案

[[email protected] ~]# lsof | more
#查詢系統中所有程序調用的檔案
COMMAND PID  USER  FD    TYPE  DEVICE  SIZE/OFF  NODE  NAME
init               1      root    cwd  DIR    8,3       4096        2           /
init               1      root    rtd    DIR    8,3       4096        2           /
init               1      root    txt     REG   8,3       145180    130874 /sbin/init
init               1      root    mem REG   8,3       142472    665291 /lib/ld-2.12.so
init               1      root    mem REG   8,3       58704      655087 /lib/libnss_files-2.12.so
…省略部分輸出…
           

例2:查詢某個檔案被哪個程序調用

[[email protected] ~]# lsof /sbin/init
#查詢某個檔案被哪個程序調用
COMMAND PID USER  FD  TYPE  DEVICE  SIZE/OFF  NODE    NAME
init               1     root    txt  REG   8,3      145180     130874   /sbin/init
           

例3:檢視某個目錄下的檔案被什麼程序調用

[[email protected] ~]# lsof +d /usr/lib
#查詢某個目錄下所有的檔案是被哪些程序調用的
COMMAND  PID    USER   FD     TYPE DEVICE  SIZE/OFF   NODE    NAME
rpc.idmap     1196  root     mem REG  8,3       26400       279930   /usr/lib/libnfsidmap.so.0.3.0
rpc.idmap     1196  root     mem REG  8,3       108948     276696   /usr/lib/libevent-1.4.so.2.1.3
avahi-dae     1240  avahi    mem REG  8,3       49124       271310   /usr/lib/libavahi-common.so.3.5.1
avahi-dae     1240  avahi    mem REG  8,3       23904       283188   /usr/lib/libdaemon.so.0.5.0
avahi-dae     1240  avahi    mem REG  8,3       227212     268396   /usr/lib/libavahi-core.so.6.0.1
avahi-dae     1241  avahi    mem REG  8,3       49124       271310   /usr/lib/libavahi-common.so.3.5.1
avahi-dae     1241  avahi    mem REG  8,3       23904       283188   /usr/lib/libdaemon.so.0.5.0
avahi-dae     1241  avahi    mem REG  8,3       227212     268396   /usr/lib/libavahi-core.so.6.0.1
cupsd           1251  root      mem REG  8,3       69564       270210   /usr/lib/libtasn1.so.3.1.6
           

例4:檢視以某個字元串開頭的程序調用了什麼檔案

[[email protected] ~]# lsof -c httpd
#檢視以httpd開頭的程序調用了哪些檔案
COMMAND PID   USER   FD    TYPE   DEVICE  SIZE/OFF  NODE   NAME
httpd           4689 root     cwd  DIR     8,3       4096        2           /
httpd           4689 root     rtd    DIR     8,3       4096        2           /
httpd           4689 root     txt     REG    8,3       1797559  2855     /usr/local/apache2/bin/httpd
httpd           4689 root     mem REG    8,3       302300    665303 /lib/libfreebl3.so
httpd           4689 root     mem REG    8,3       58704      655087 /lib/libnss_files-2.12.s
httpd           4689 root     mem REG    8,3       142472    665291 /lib/ld-2.12.so
httpd           4689 root     mem REG    8,3       1889704  665292 /lib/libc-2.12.so
…省略部分輸出…
           

例5:以程序的ID來檢視調用情況

[[email protected] ~]# lsof -p 1
#查詢PID是1的程序調用的檔案
COMMAND PID USER FD   TYPE  DEVICE  SIZE/OFF NODE  NAME
init               1     root  cwd  DIR    8,3      4096        2           /
init               1     root rtd     DIR    8,3      4096        2           /
init               1     root  txt     REG   8,3      145180    130874 /sbin/init
init               1     root  mem REG   8,3      142472    665291 /lib/ld-2.12.so
init               1     root  mem REG   8,3      58704      655087 /lib/libnss_files-2.12.so
           

例6:檢視某個使用者的程序調用了哪些檔案

[[email protected] ~]# lsof -u root
#按照使用者名查詢某個使用者的程序調用的檔案
COMMAND PID USER  FD      TYPE   DEVICE   SIZE/OFF   NODE  NAME
init               1     root    cwd    DIR     8,3       4096          2           /
init               1     root    rtd      DIR     8,3       4096          2           /
init               1     root    txt      REG     8,3       145180     130874  /sbin/init
init               1     root    mem  REG     8,3       142472     665291  /lib/ld-2.12.so
init               1     root    mem  REG     8,3       58704       655087  /lib/libnss_files-2.12.s
init               1     root    mem  REG     8,3       38768       655310  /lib/libnih-dbus.so.1.0.
…省略部分輸出…
           

繼續閱讀