简述:
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