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

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

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

查看( 689 ) / 评论( 0 )
lsof全名list openedfiles,也就是列举系统中已经被打开的文件。我们都知道,linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件。所以,用好lsof命令,对日常的linux管理非常有帮助。以下的说明,大部分内容来自lsof的manual文档。我所做的只是在中文翻译的基础上,进行简单的分类说明,并列举最常用的参数。51Testing软件测试网G }3l.V`m/c*a
一、输出说明51Testing软件测试网6qQ$PsH+r:Hi j$\
   lsof是linux最常用的命令之一,通常的输出格式为:
F S&j)F"Sq9E\,u0引用
5o,kT|_2U0COMMAND     PID   USER   FD      TYPE     DEVICE     SIZE       NODE NAME
-Uqum/P e2J0常见包括如下几个字段:更多的可见manual。51Testing软件测试网xhMt-s {&o
1、COMMAND
m$w \(O;wz8T9v p0默认以9个字符长度显示的命令名称。可使用+c参数指定显示的宽度,若+c后跟的参数为零,则显示命令的全名51Testing软件测试网6I3Xst2PI"TM
2、PID:进程的ID号51Testing软件测试网jK$TD-TH
3、PPID51Testing软件测试网 T Bd {Md9q
父进程的IP号,默认不显示,当使用-R参数可打开。
'b Fs+|Yh i4u04、PGID51Testing软件测试网-z j-X%\ ~?5ht#w
进程组的ID编号,默认也不会显示,当使用-g参数时可打开。
q:hE7ONc!Ae?2e05、USER
;V-i[dg)IZ%l/{M0命令的执行UID或系统中登陆的用户名称。默认显示为用户名,当使用-l参数时,可显示UID。51Testing软件测试网i"yK,KZ#[c5hT+C8Z
6、FD51Testing软件测试网8f `@7\`
是文件的File Descriptor number,或者如下的内容:51Testing软件测试网i RDRD
(这里很难翻译对应的意思,保留英文)
M5@K#q9O C M9t0引用
:N d!PH3P$i0cwd  current working directory;
/Ka,KGVeu^a0Lnn  library references (AIX);51Testing软件测试网;U,~^-@:k%o?(^
jld  jail directory (FreeBSD);
l}!G8l9BHp0ltx  shared library text (code and data);
Z$X4S P_;T*w$l1{[0Mxx  hex memory-mapped type number xx.51Testing软件测试网3t8C9t!^ fA
m86  DOS Merge mapped file;
B `#BKA7K0mem  memory-mapped file;51Testing软件测试网 z'e D/v4k+_a
mmap memory-mapped device;
ljuBp1y4\il0pd   parent directory;
G#W[M+_g0rtd  root directory;51Testing软件测试网$j7O_E/[.I'X
tr   kernel trace file (OpenBSD);51Testing软件测试网+m2E2q*wr NsY
txt  program text (code and data);51Testing软件测试网 W1Y"J"Y-JW0S.T
v86  VP/ix mapped file;51Testing软件测试网 B*i LI"~^5l D@
文件的File Descriptor number显示模式有:
z0gc4Lb1^X0引用51Testing软件测试网 M)I*~Gow_~\qS
r for read access;51Testing软件测试网/Lk4@#w2eb&^,A
w for write access;51Testing软件测试网J"RG N3L{/\+_!e%l
u for read and write access;
q0Ox~1q(_0N for a Solaris NFS lock of unknown type;
Ly.S5LE9j,h0r for read lock on part of the file;51Testing软件测试网:a!^0NS.L+d'_ E
R for a read lock on the entire file;51Testing软件测试网o%i}a7{u-`I!K
w for a write lock on part of the file;51Testing软件测试网K_4F(D2SI9v ?#oK#fe
W for a write lock on the entire file;
3^|3tDe!l7W!Fj0u for a read and write lock of any length;51Testing软件测试网o#t6R a8bY7RH"v0r
U for a lock of unknown type;51Testing软件测试网4y4Tf w.^vW
x for an SCO OpenServer Xenix lock on part  of the file;51Testing软件测试网mK(`Y9O0v&p&}
X  for an SCO OpenServer Xenix lock on the entire file;
#U kFH%`(J t#[0space if there is no lock.51Testing软件测试网4XFoYP3r'z#n
7、TYPE
W2S/Nz"n0引用51Testing软件测试网 Q_0F!O[,zRA o*J
IPv4 IPv4的包;51Testing软件测试网(?F9ub m-i+d:H&f
IPv6 使用IPv6格式的包,即使地址是IPv4的,也会显示为IPv6,而映射到IPv6的地址;51Testing软件测试网/T lsrOh/C
DIR 目录
W%Gwp(s,VHu|f\+\0LINK 链接文件51Testing软件测试网l-A,R;^%_ a?!M.t
详情请看manual中更多的注释。
_'txMK6qO08、DEVICE
"A'lf:H!z6F0使用character special、block special表示的设备号51Testing软件测试网(sw1bos(g6jmU
9、SIZE
0Sk']:j?+y0文件的大小,如果不能用大小表示的,会留空。使用-s参数控制。51Testing软件测试网d%f8G Too)d
10、NODE
*W;IDk iD0本地文件的node码,或者协议,如TCP等
?;E9c)_k$de2g7j011、NAME
d`f"O:A0c8lH%mY0挂载点和文件的全路径(链接会被解析为实际路径),或者连接双方的地址和端口、状态等
{P5qV]&L0D6xX0二、参数
/HG F tu#YT01、不带额外参数运行51Testing软件测试网3L)C ~%V|,KFH
lsof path/filename51Testing软件测试网 F~9n!k&?#K5d*R
显示已打开该目录或文件的所有进程信息51Testing软件测试网 }ET OQ[~
lsof `which httpd`
pv3x7? M#`um&B0显示指定命令的信息51Testing软件测试网E+@dR]3h#qjt
2、参见参数
p+?d2A k G$bdR5J0-c w 显示以w开头命令的已打开文件的信息
X]aq0S`!Kx @t0lsof -c sshd51Testing软件测试网i`p#B.C'P A ]d
-p PID 显示指定PID已打开文件的信息51Testing软件测试网'NHC#Sd$M;O H3wJ5x {
lsof -p 440151Testing软件测试网4H-f Q$^\)e(`#X4R
+d dir 依照文件夹dir来搜寻,但不会打开子目录
&U a X0nz heOvD0lsof +d /root
^ }"v6i!AD'Fb3R0+D dir 打开dir文件夹以及其子目录搜寻51Testing软件测试网Mz{K|X
lsof +D /root/51Testing软件测试网1HL0o7E8m
-d s 以FD列的信息进行匹配,可使用3-10,表示范围,3,10表示某些值51Testing软件测试网hqn5O_6gR^*P
lsof -d 3-10
Pri+Bf0-u 显示某用户的已经打开的文件(或该用户执行程序已经打开的文件)
i:[;I%~$~~q9B0e5r0lsof -u root
P}U,M:~'[K ]0lsof -u 051Testing软件测试网Z+@FKB d%cBc
◎可配合正规表达式使用51Testing软件测试网w&Mfpa_s
表示不包括root用户的信息:
S P2aC`Z Ze0lsof -u ^root51Testing软件测试网'~5aJ!\\@-|m
-i 监听指定的协议、端口、主机等的网络信息,格式为:
$YxR)gK#O kLX4O0引用51Testing软件测试网6cp[ G}x^r
[46][proto][@host|addr][:svc_list|port_list]
9f-rT'gAd0例如:
~d_,Lel2C([0lsof -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>' ); //-->51Testing软件测试网n-u+^u v5r
lsof -i:2251Testing软件测试网IEn4G}_$NVZ
还可以使用一些参数控制显示结果:51Testing软件测试网$D'Ubt'aK%Sq6oe
引用
"k~*M*b k0-l 禁止将userID转换为登陆名称,即显示UID51Testing软件测试网 n7_$B'Y^N O
-n 禁止将IP地址转换为hostname主机文件
|fT'DAdS0-P 不显示端口名称
I+bAHveD0-g s 从PGID列进行匹配
0B7@Vp9~/p \RE0lsof -g 3-10
+Lk3^"uO.XAQ051Testing软件测试网4O%O'qA9s ~ l2|S3NO
3、其他参数
q H(MD~ZU)m0+f 所有路径参数都必须是文件系统,否则不能执行51Testing软件测试网PB ]o!v2l-o8D:Ua
-f 所有路径参数都将作为普通的文件,例如:"-f -- /"中的/,只会匹配单个/路径,而不会是根目录中的所有文件51Testing软件测试网 I6m [P'Y.CAV
+f和-f后都应加上“--”表终结符:
p L['?&``lH l0lsof -f -- /
UI@*y7Fa5OiNf0+L/-L 打开或关闭文件的连结数计算,当+L没有指定时,所有的连结数都会显示(默认);若+L后指定数字,则只要连结数小于该数字的信息会显示;连结数会显示在NLINK列。51Testing软件测试网b3l~rZ,e,s9Q1dh9c
例如:+L1将显示没有unlinked的文件信息;+aL1,则显示指定文件系统所有unlinked的文件信息
Sz1xz+X\+Wt,v.n"w0-L 默认参数,其后不能跟数字,将不显示连结数信息51Testing软件测试网Lua b)m e1Z C
lsof +L151Testing软件测试网g|Yx0ps9DJh+b
-t 仅打印进程,方便shell脚本调用51Testing软件测试网&_B4W;luj3}.g
lsof -t -c sshd
YA.g1J#r I.|^0-F 指定输出那个列,可通过lsof -F?查看
@ Bq0t b9@0-r 不断执行lsof命令,默认每15秒间隔执行一次51Testing软件测试网aYr;Ot_+nl,Ad9L,bp
+r 也是不断执行lsof命令,但直到没有接受到文件信息,则停止
相关阅读:

TAG: lsof

我来说两句

(可选)

Open Toolbar