lsof简介
kgblhx
|
1#
kgblhx 发表于 2005-04-15 22:09
lsof简介
lsof简介
Submitted by zer0r2y on 2004, September 5, 1:10 AM. 学习笔记 lsof是一个功能强大的诊断工具,它可以通过进程与打开的文件进行联系,可以列出一个进程打开的所有文件信息. 1 寻找与打开的文件相关联的进程 通过指定文件,可以发现正在使用这个文件的进程 # lsof /var/log/messages COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME syslogd 1968 root 1w REG 3,9 219245 780490 /var/log/messages 可以看出,只有系统记录后台程序(syslogd)打开了这个文件. 2 用lsof解除阻塞 有时你想用umount卸载一个文件系统,但是程序报告该文件系统正忙,则需要直到哪些文件,程序或者用户 仍在使用该系统,可以执行下面命令 #lsof mountpoint //mountpoint是挂载点 注意,有时lsof不能在某部分发现任何打开的文件,但它仍显示为忙状态.在此情况下,说明该文件系统中的内核 拥有一个或多个文件的内部引用.在这种情况下,唯一的解决方案是等待引用消失或在/etc/fstab目录下激活该 文件系统适当的安装实体并且重新启动. 3 搜索打开的网络连接 参数i可以搜索系统中所有打开的套接字 如果想搜索IP地址为192.168.0.100的远程主机的所有网络连接,可以执行lsof -i@192.168.0.100 因为本机试验,假设远程主机IP也为127.0.0.1 # lsof -i@127.0.0.1 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME xinetd 2119 root 5u IPv4 2409 TCP localhost.localdomain:32769 (LISTEN) cupsd 2160 root 0u IPv4 2537 TCP localhost.localdomain:ipp (LISTEN) fam 2401 root 0u IPv4 2409 TCP localhost.localdomain:32769 (LISTEN) fam 2401 root 1u IPv4 2409 TCP localhost.localdomain:32769 (LISTEN) fam 2401 root 2u IPv4 2409 TCP localhost.localdomain:32769 (LISTEN) lsof报告了几条连接到127.0.0.1地址的命令. netstat和lsof可以配合使用.lsof -iTCP@192.168.0.100可以得到和远程主机192.168.0.100进行连接的进程, 该进程运行在本地主机的某个端口上 # lsof -iTCP@127.0.0.1 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME xinetd 2119 root 5u IPv4 2409 TCP localhost.localdomain:32769 (LISTEN) cupsd 2160 root 0u IPv4 2537 TCP localhost.localdomain:ipp (LISTEN) fam 2401 root 0u IPv4 2409 TCP localhost.localdomain:32769 (LISTEN) fam 2401 root 1u IPv4 2409 TCP localhost.localdomain:32769 (LISTEN) fam 2401 root 2u IPv4 2409 TCP localhost.localdomain:32769 (LISTEN) 4 搜索被程序打开的所有文件 要知道一个特定的程序打开了哪些文件,可以执行 lsof -p PID,一般配合ps使用 #ps -aux ....... root 2324 0.1 3.6 14860 9236 ? S 21:22 0:02 fcitx ...... # lsof -p 2324 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME fcitx 2324 root cwd DIR 3,9 4096 290881 /root fcitx 2324 root rtd DIR 3,9 4096 2 / fcitx 2324 root txt REG 3,9 125784 341397 /usr/bin/fcitx fcitx 2324 root mem REG 3,9 103044 775758 /lib/ld-2.3.2.so fcitx 2324 root mem REG 3,9 21040 81056 /usr/lib/gconv/gconv-modules.cache fcitx 2324 root mem REG 3,9 6404 80912 /usr/lib/gconv/GBGBK.so fcitx 2324 root mem REG 3,9 19960 759919 /usr/X11R6/lib/X11/locale/lib/common/xlibi18n.so.2 fcitx 2324 root mem REG 3,9 3740 759918 /usr/X11R6/lib/X11/locale/lib/common/xlcUTF8Load.so.2 fcitx 2324 root mem REG 3,9 908016 420807 /usr/X11R6/lib/libX11.so.6.2 fcitx 2324 root mem REG 3,9 15084 775769 /lib/libdl-2.3.2.so fcitx 2324 root mem REG 3,9 30301680 468656 /usr/lib/locale/locale-archive fcitx 2324 root mem REG 3,9 105776 80913 /usr/lib/gconv/GBK.so fcitx 2324 root mem REG 3,9 36456 759921 /usr/X11R6/lib/X11/locale/lib/common/xomGeneric.so.2 fcitx 2324 root mem REG 3,9 177636 80910 /usr/lib/gconv/GB18030.so fcitx 2324 root mem REG 3,9 1531064 290959 /lib/tls/libc-2.3.2.so fcitx 2324 root 0r CHR 1,3 66358 /dev/null fcitx 2324 root 1w REG 3,9 587 293627 /root/.xsession-errors fcitx 2324 root 2w REG 3,9 587 293627 /root/.xsession-errors fcitx 2324 root 3u unix 0xcc01a580 2750 socket 上面的输出信息显示了该进程打开的所有文件,设备,库以及网络套接字 如果想找到一条命令的所有实例及每个实例所打开的文件,可以使用参数c,如 [root@www root]# lsof -c sshd COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME sshd 2105 root cwd DIR 3,9 4096 2 / sshd 2105 root rtd DIR 3,9 4096 2 / sshd 2105 root txt REG 3,9 278552 388141 /usr/sbin/sshd sshd 2105 root mem REG 3,9 103044 775758 /lib/ld-2.3.2.so sshd 2105 root mem REG 3,9 28452 355792 /usr/lib/libwrap.so.0.7.6 sshd 2105 root mem REG 3,9 30448 776067 /lib/libpam.so.0.75 sshd 2105 root mem REG 3,9 15084 775769 /lib/libdl-2.3.2.so sshd 2105 root mem REG 3,9 76552 775789 /lib/libresolv-2.3.2.so sshd 2105 root mem REG 3,9 12696 775795 /lib/libutil-2.3.2.so sshd 2105 root mem REG 3,9 52616 355669 /usr/lib/libz.so.1.1.4 sshd 2105 root mem REG 3,9 91604 775773 /lib/libnsl-2.3.2.so sshd 2105 root mem REG 3,9 968956 776055 /lib/libcrypto.so.0.9.7a sshd 2105 root mem REG 3,9 385220 759686 /usr/kerberos/lib/libkrb5.so.3.1 sshd 2105 root mem REG 3,9 63880 759676 /usr/kerberos/lib/libk5crypto.so.3.0 sshd 2105 root mem REG 3,9 5572 759666 /usr/kerberos/lib/libcom_err.so.3.0 sshd 2105 root mem REG 3,9 73756 759672 /usr/kerberos/lib/libgssapi_krb5.so.2.2 sshd 2105 root mem REG 3,9 52472 775779 /lib/libnss_files-2.3.2.so sshd 2105 root mem REG 3,9 1531064 290959 /lib/tls/libc-2.3.2.so sshd 2105 root 0u CHR 1,3 66358 /dev/null sshd 2105 root 1u CHR 1,3 66358 /dev/null sshd 2105 root 2u CHR 1,3 66358 /dev/null sshd 2105 root 3u IPv4 2377 TCP *:ssh (LISTEN) 显示sshd服务器的所有实例及它们所打开的文件 评论 当前Blog无任何评论 |