十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

lsof列举系统中已经被打开的文件

上一篇 / 下一篇  2010-07-08 10:20:26 / 个人分类:liunx相关

查看( 686 ) / 评论( 0 )
lsof全名list openedfiles,也就是列举系统中已经被打开的文件。我们都知道,linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件。所以,用好lsof命令,对日常的linux管理非常有帮助。以下的说明,大部分内容来自lsof的manual文档。我所做的只是在中文翻译的基础上,进行简单的分类说明,并列举最常用的参数。51Testing软件测试网:}#T$pa$iKH
一、输出说明
Ef+Ug4o0   lsof是linux最常用的命令之一,通常的输出格式为:
)P6R%b"M%x{5I0引用
b y(j6_4WOV0COMMAND     PID   USER   FD      TYPE     DEVICE     SIZE       NODE NAME51Testing软件测试网X3e@8t@ p&k$jh2_8V
常见包括如下几个字段:更多的可见manual。
9y%_Ne.dO'ZZ01、COMMAND
Qk9u9C4`u,U j0默认以9个字符长度显示的命令名称。可使用+c参数指定显示的宽度,若+c后跟的参数为零,则显示命令的全名
:ZI;l;Y&@;]:{T8i02、PID:进程的ID号51Testing软件测试网0s*wC[*j)L TUq({
3、PPID
W/UtX5u7i ~0父进程的IP号,默认不显示,当使用-R参数可打开。51Testing软件测试网p1G8Ek5R._ P
4、PGID
9OW"kl;F"bw z0进程组的ID编号,默认也不会显示,当使用-g参数时可打开。51Testing软件测试网 c'W1J*a?u(m~/_G
5、USER
Hp6\3i Kh]2\)W0命令的执行UID或系统中登陆的用户名称。默认显示为用户名,当使用-l参数时,可显示UID。51Testing软件测试网q$z:`7m Y?a
6、FD51Testing软件测试网 i-k4{YNi xXe
是文件的File Descriptor number,或者如下的内容:
-Yl\ j$\$kZ4BK0(这里很难翻译对应的意思,保留英文)51Testing软件测试网"Gv!h4m;H*\;@
引用51Testing软件测试网v+R V+fb*^ s3Z/O&n
cwd  current working directory;
;Gux Ct9|G0Lnn  library references (AIX);51Testing软件测试网0r1c4w3w7X P
jld  jail directory (FreeBSD);
xWZ7iH@0ltx  shared library text (code and data);
i$ti^"PIUl?0Mxx  hex memory-mapped type number xx.
y-Qjm3O$xIV$V0m86  DOS Merge mapped file;
Lvx%J|0mem  memory-mapped file;
bwr Y.]b0mmap memory-mapped device;51Testing软件测试网c[m'P/x'v Hb
pd   parent directory;
{+\`{$bFAi/|0rtd  root directory;
}*N5QIsk!j,p(y;v0tr   kernel trace file (OpenBSD);51Testing软件测试网yb G N9A3\%|0Ni
txt  program text (code and data);51Testing软件测试网_s;L"\&j
v86  VP/ix mapped file;51Testing软件测试网5\*zTX}L/y%G
文件的File Descriptor number显示模式有:
@(JOiy%eQ4@? g0引用51Testing软件测试网X$U:r8FI,m ?N+VL.T
r for read access;
$nt#ISqtA n/eU.K[,s0w for write access;51Testing软件测试网f?*?+c9h?-O)w'}J
u for read and write access;
)B6`+^q r;l!NI0N for a Solaris NFS lock of unknown type;51Testing软件测试网 Lr:l5k{,R
r for read lock on part of the file;
/QD(t?4F;SL&L$N0R for a read lock on the entire file;51Testing软件测试网-bF,o m#Bh0h!t
w for a write lock on part of the file;51Testing软件测试网u:TCr)D7w/A
W for a write lock on the entire file;
{zd"gM u};c0u for a read and write lock of any length;
9kD!Ey j5u!_0U for a lock of unknown type;51Testing软件测试网[Da,Q$uB
x for an SCO OpenServer Xenix lock on part  of the file;51Testing软件测试网 ?+N@s\kDN|d
X  for an SCO OpenServer Xenix lock on the entire file;51Testing软件测试网tp'OS7P'q9\@
space if there is no lock.51Testing软件测试网6{(X?v(i#f8p(HP
7、TYPE51Testing软件测试网W1|d(yhdM
引用51Testing软件测试网,c9V&~2e%NM8B5a
IPv4 IPv4的包;
| ZY iy0IPv6 使用IPv6格式的包,即使地址是IPv4的,也会显示为IPv6,而映射到IPv6的地址;
6S'd&J!E5o#} KSn0DIR 目录51Testing软件测试网;b8G3R!Hn2g+nf"m
LINK 链接文件51Testing软件测试网g1~4{r/U+V
详情请看manual中更多的注释。51Testing软件测试网:hIaiD
8、DEVICE51Testing软件测试网5]KV;YCa:N*a#xn
使用character special、block special表示的设备号
v Y+L TUn09、SIZE51Testing软件测试网AlX,\;T
文件的大小,如果不能用大小表示的,会留空。使用-s参数控制。51Testing软件测试网.fz3}%Q-lF
10、NODE
"k V%E7vQM3O0本地文件的node码,或者协议,如TCP等
}l.s"fN011、NAME51Testing软件测试网;mq#|&Nk(bK{
挂载点和文件的全路径(链接会被解析为实际路径),或者连接双方的地址和端口、状态等
-MO-J)Dq'a0二、参数51Testing软件测试网2tO"TX+e7XS;Gg
1、不带额外参数运行51Testing软件测试网g.RhQ(L"g
lsof path/filename
n*x2j?:^q W_B;u0显示已打开该目录或文件的所有进程信息
xk_!l:^h0lsof `which httpd`51Testing软件测试网e7i;xG/Z ] @%T
显示指定命令的信息
q8g pMI4t02、参见参数
y.}y\ _&W0-c w 显示以w开头命令的已打开文件的信息51Testing软件测试网3kI5{W&@pu2@
lsof -c sshd
R6G)MJ)a^5T|0-p PID 显示指定PID已打开文件的信息51Testing软件测试网 `2f6E'~qUTS
lsof -p 440151Testing软件测试网E8i x5w9p7f2q9sX
+d dir 依照文件夹dir来搜寻,但不会打开子目录51Testing软件测试网&XB,rB/OWsdN
lsof +d /root
PN1VIkj)E0+D dir 打开dir文件夹以及其子目录搜寻
'upT"yg,q%U N't0lsof +D /root/51Testing软件测试网2efl#{8K.DZ
-d s 以FD列的信息进行匹配,可使用3-10,表示范围,3,10表示某些值
_\6Od~4| l0lsof -d 3-10
r O;Bz%O^jNJ0-u 显示某用户的已经打开的文件(或该用户执行程序已经打开的文件)51Testing软件测试网UM,t o:[7u5e
lsof -u root51Testing软件测试网+p+X#V/\z0p
lsof -u 051Testing软件测试网z\&Z;a&k G?
◎可配合正规表达式使用
(`6p2y8E vWc0表示不包括root用户的信息:
"Am5Y9f&J \@0lsof -u ^root
aPl S IC0-i 监听指定的协议、端口、主机等的网络信息,格式为:
R i(J1A?%t2m+f0引用51Testing软件测试网_3nK+zZr0H
[46][proto][@host|addr][:svc_list|port_list]
H&C(z PZ4K"N0例如:51Testing软件测试网-^8mp!N!?#uu J
lsof -i   <!-- var prefix = 'ma' + 'il' + 'to'; var path = 'hr' + 'ef' + '='; var addy67108 = 'tcp' + '@'; addy67108 = addy67108 + '192' + '.' + '168' + '.' + '228' + '.' + '244'; var addy_text67108 = 'tcp' + '@' + '192' + '.' + '168' + '.' + '228' + '.' + '244'; document.write( '<a ' + path + '\'' + prefix + ':' + addy67108 + '\'>' ); document.write( addy_text67108 ); document.write( '<\/a>' ); //-->\n [url=mailto:tcp@192.168.228.244]tcp@192.168.228.244[/url] <!-- document.write( '<span style=\'display: none;\'>' ); //--> 为防备电子邮件地址收集器,这个 E-mail 地址被隐藏,你的浏览器必须支持 Javascript. 才可看到这个邮件地址  <!-- document.write( '</' ); document.write( 'span>' ); //-->
w.?? X1x#\&u.P1md0lsof -i:22
9L hA%HD0c1S0还可以使用一些参数控制显示结果:
V![Z/|4\&?0引用
F] bNYX7\A~,V+Y0-l 禁止将userID转换为登陆名称,即显示UID51Testing软件测试网+i2O,s:x:t~w?)G
-n 禁止将IP地址转换为hostname主机文件51Testing软件测试网 v(^mp-lC
-P 不显示端口名称51Testing软件测试网4B4W:H |O F*_
-g s 从PGID列进行匹配
4pF#jS9A0lsof -g 3-10
LN2w1`+K Y;V0
LXmA;b03、其他参数
:K2Mu I0Mo5Ia7mjV0+f 所有路径参数都必须是文件系统,否则不能执行
n_ ?3xlB"J3O NV0-f 所有路径参数都将作为普通的文件,例如:"-f -- /"中的/,只会匹配单个/路径,而不会是根目录中的所有文件51Testing软件测试网6U-d|oo i0t!i!w r
+f和-f后都应加上“--”表终结符:
5sI`"G2`"|y0lsof -f -- /51Testing软件测试网A Ee o#bU&Y)V
+L/-L 打开或关闭文件的连结数计算,当+L没有指定时,所有的连结数都会显示(默认);若+L后指定数字,则只要连结数小于该数字的信息会显示;连结数会显示在NLINK列。
f2w0MW5n8^ k2FB@i0例如:+L1将显示没有unlinked的文件信息;+aL1,则显示指定文件系统所有unlinked的文件信息51Testing软件测试网9{:?#gkZ:[W"fH%k
-L 默认参数,其后不能跟数字,将不显示连结数信息
dy,doy+q6rW0lsof +L1
n sg~7j1V0-t 仅打印进程,方便shell脚本调用51Testing软件测试网,~#`_Il%w#c@S.i
lsof -t -c sshd
`8Zp`n_0-F 指定输出那个列,可通过lsof -F?查看51Testing软件测试网h,F}5p0X.X3w s+V
-r 不断执行lsof命令,默认每15秒间隔执行一次
3K?)_7{'?0+r 也是不断执行lsof命令,但直到没有接受到文件信息,则停止
相关阅读:

TAG: lsof

我来说两句

(可选)

Open Toolbar