簡述:
lsof –> list open files,主要用於查看系統當前打開的文件以及獲取打開指定文件進程等的相關信息。
語法:
lsof [+options]
options:
-a:列出打開文件存在的進程;
-c<進程名>:列出指定進程所打開的文件;
-p<進程號>:列出指定進程號所打開的文件;
-d<文件號>:列出佔用該文件號的進程;
+d<目錄>:列出目錄下被打開的文件;
+D<目錄>:遞歸列出目錄下被打開的文件;
栗子:
- 獲取當前系統中所有打開的文件信息:
$ lsof|more -5
init 1 root cwd DIR 8,2 4096 2 /
init 1 root rtd DIR 8,2 4096 2 /
init 1 root txt REG 8,2 150352 3670027 /sbin/init
init 1 root mem REG 8,2 65928 262741 /lib64/libnss_files-2.12.so
由於打開內容過多,通過more
進行了分頁查看。
- 獲取指定文件的打開信息
$ lsof core.log
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 31913 root 50w REG 8,2 26367600 789677 core.log
- 獲取指定進程打開的文件信息
$ lsof -p 31913|more -5
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 31913 root cwd DIR 8,2 4096 789818 xxx
java 31913 root rtd DIR 8,2 4096 2 /
java 31913 root txt REG 8,2 7718 787609 xxx
java 31913 root mem REG 8,2 37069 788302 xxx