lsof - list open files
目录
- 5.1. $$
- 5.2. 监控文件系统
- 5.3. 设备文件
- 5.4. 用户监控
- 5.5. 监控进程
- 5.6. 监控网络
- 5.7. lsof 高级用法
- 5.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
5.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
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。