不懂博客—所知甚少因而建立此博客记录不懂知识;学习、关注、体验互联网。

快速学习linux里的lsof,lsof实用实例

来源:原创 作者:fcbu.com 时间:2010-10-13 【 打印

lsof对排障很有作用,之前查过一下关于losf的使用使用说明,讲的很详细,但是让人看得一头雾水,内容冗长,看了叫人抓狂,深受其害,还是实例有用,下面我将通过大量的lsof实例介绍使用lsof的方法.

查看对某个文件的使用情况
查看哪些进程对某个文件进行了调用:
$ lsof /etc/passwd 1

查看对文件系统的使用
/tmp目录被垃圾文件塞满了, 但是, 用ls 又看不到太大文件, 谁干的?
$ lsof /tmp

查找打开,但是不能连接的文件
一个进程打开一个文件, 然后将其设为 unlinked 状态, 则此文件资源仍能被进程使用, 但是其访问路径已经被删除了. 因此, 使用ls不能将其列出. 只有当进程结束时, 才能释放文件占用的资源
查找unlinked 文件, 选项 L, 作用: 列出打开文件的连接数
$lsof L
指定连接数的上限 $lsof L1
同时指定文件系统, 则需要使用 -a(AND) 选项
$ lsof -a L1 /home

无法卸载
查看谁令mount的分区无法卸载
$ lsof <file_system_name>

查看监听socket
查看网络服务
$ lsof -i

查看某个网络连接
$ lsof -i@www.fcbu.com
$ lsof -iTCP@www.fcbu.com:ftp-data *指定协议*
$ lsof -i4 *指定IP版本*
$ lsof -i6

识别 Netstat 连接
例如: netstat -p -t -n 的输出为:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 218.56.203.246:52634 72.14.203.18:7000 ESTABLISHED
则可以: tony@tony:~$ lsof -iTCP@72.14.203.18:7000
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
xchat 4505 tony 12u IPv4 5775 TCP 218.56.203.246:52634->72.14.203.18:afs3-fileserver (ESTABLISHED)

查找针对某个命令打开的文件
使用命令的PID
$ lsof -p <PID>
使用命令名称
$ lsof -c <first_characters_of_command_name_that_interest_you>
$ lsof -c sendmail

查看谁在使用设备文件
$ lsof /dev/hda6


查看某个用户的操作
$ id -u tony
1000
$ lsof -u1000 or $ lsof -utony
$ lsof -u^tony * 则是取反的意思*

希望大家看了这个能举一反三,确实这里没有说到的,那么可以查看一下lsof的帮助选项说明。

分类目录: | 标签:linux lsof
linux主机名(计算机名)和工作组的修改方法
linux命令行下svn的使用方法(完整版)