Linux系统lsof命令怎么用
导读:本文共4810.5字符,通常情况下阅读需要16分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: lsof是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。lsof输出格式为:COMMANDPIDUSERFDTYPEDEVICESIZENODENAME[root@uyhd000225~]#lsof|tail-5mysqld30275mysql146uREG3,138... ...
目录
(为您整理了一些要点),点击可以直达。lsof输出格式为:
COMMANDPIDUSERFDTYPEDEVICESIZENODENAME[root@uyhd000225~]#lsof|tail-5mysqld30275mysql146uREG3,13852841543089/var/lib/mysql/mysqldb/fiss_indx_info.MYDmysqld30275mysql156uREG3,1359842752534/var/lib/mysql/mysqldb/inf_res_cons_price_idx_m.MYDmysqld30275mysql157uREG3,102752535/var/lib/mysql/mysqldb/inf_res_cons_price_idx_y.MYDmysqld30275mysql158uREG3,142404042752536/var/lib/mysql/mysqldb/insure_baseinfo.MYDmysqld30275mysql159uREG3,102752538/var/lib/mysql/mysqldb/insure_fee.MYD[root@uyhd000225~]#
常见包括如下几个字段:更多的可见manual。 1、COMMAND 默认以9个字符长度显示的命令名称。可使用+c参数指定显示的宽度,若+c后跟的参数为零,则显示命令的全名 2、PID:进程的ID号 3、PPID 父进程的IP号,默认不显示,当使用-R参数可打开。 4、PGID 进程组的ID编号,默认也不会显示,当使用-g参数时可打开。 5、USER 命令的执行UID或系统中登陆的用户名称。默认显示为用户名,当使用-l参数时,可显示UID。 6、FD 是文件的File Descriptor number,或者如下的内容: (这里很难翻译对应的意思,保留英文)
引用
cwdcurrentworkingdirectory;Lnnlibraryreferences(AIX);jldjaildirectory(FreeBSD);ltxsharedlibrarytext(codeanddata);Mxxhexmemory-mappedtypenumberxx.m86DOSMergemappedfile;memmemory-mappedfile;mmapmemory-mappeddevice;pdparentdirectory;rtdrootdirectory;trkerneltracefile(OpenBSD);txtprogramtext(codeanddata);v86VP/ixmappedfile;
文件的File Descriptor number显示模式有:
引用
rforreadaccess;wforwriteaccess;uforreadandwriteaccess;NforaSolarisNFSlockofunknowntyperforreadlockonpartofthefile;Rforareadlockontheentirefile;wforawritelockonpartofthefile;Wforawritelockontheentirefile;uforareadandwritelockofanylength;Uforalockofunknowntype;xforanSCOOpenServerXenixlockonpartofthefile;XforanSCOOpenServerXenixlockontheentirefile;spaceifthereisnolock.
7、TYPE 引用 IPv4 IPv4的包; IPv6 使用IPv6格式的包,即使地址是IPv4的,也会显示为IPv6,而映射到IPv6的地址; DIR 目录 LINK 链接文件 详情请看manual中更多的注释。
8、DEVICE 使用character special、block special表示的设备号
9、SIZE 文件的大小,如果不能用大小表示的,会留空。使用-s参数控制。
10、NODE 本地文件的node码,或者协议,如TCP等
11、NAME 挂载点和文件的全路径(链接会被解析为实际路径),或者连接双方的地址和端口、状态等
常用示例: 1.显示开启文件/home/oracle/10.2.0/db_1/bin/tnslsnr的进程
[root@svr-db-test~]#lsof/home/oracle/10.2.0/db_1/bin/tnslsnrCOMMANDPIDUSERFDTYPEDEVICESIZENODENAMEtnslsnr3520oracletxtREG253,543106211408866/home/oracle/10.2.0/db_1/bin/tnslsnr
2.知道22端口现在运行什么程序
[root@svr-db-test~]#lsof-i:22COMMANDPIDUSERFDTYPEDEVICESIZENODENAMEsshd3101root3uIPv68670TCP*:ssh(LISTEN)sshd4545root3uIPv64237972TCP203.aibo.com:ssh->win-avbmq9e8ka7.gdgg.local:nsjtp-ctrl(ESTABLISHED)
3.显示init进程现在打开的文件
[root@svr-db-test~]#lsof-cinitCOMMANDPIDUSERFDTYPEDEVICESIZENODENAMEinit1rootcwdDIR253,040962/init1rootrtdDIR253,040962/init1roottxtREG253,043496524446/sbin/initinit1rootmemREG253,0130448917826/lib64/ld-2.5.soinit1rootmemREG253,01678480917827/lib64/libc-2.5.soinit1rootmemREG253,023520917686/lib64/libdl-2.5.soinit1rootmemREG253,0247528917844/lib64/libsepol.so.1init1rootmemREG253,095480917845/lib64/libselinux.so.1init1root10uFIFO0,162311/dev/initctl
看进程号为1的进程打开了哪些文件
[root@svr-db-test~]#lsof-p1COMMANDPIDUSERFDTYPEDEVICESIZENODENAMEinit1rootcwdDIR253,040962/init1rootrtdDIR253,040962/init1roottxtREG253,043496524446/sbin/initinit1rootmemREG253,0130448917826/lib64/ld-2.5.soinit1rootmemREG253,01678480917827/lib64/libc-2.5.soinit1rootmemREG253,023520917686/lib64/libdl-2.5.soinit1rootmemREG253,0247528917844/lib64/libsepol.so.1init1rootmemREG253,095480917845/lib64/libselinux.so.1init1root10uFIFO0,162311/dev/initctl
显示归属3520的进程情况
[root@svr-db-test~]#lsof-g3520COMMANDPIDPGIDUSERFDTYPEDEVICESIZENODENAMEtnslsnr35203520oraclecwdDIR253,5409611059201/home/oracletnslsnr35203520oraclertdDIR253,040962/tnslsnr35203520oracletxtREG253,543106211408866/home/oracle/10.2.0/db_1/bin/tnslsnrtnslsnr35203520oraclememREG253,0130448917826/lib64/ld-2.5.sotnslsnr35203520oraclememREG253,01678480917827/lib64/libc-2.5.sotnslsnr35203520oraclememREG253,023520917686/lib64/libdl-2.5.sotnslsnr35203520oraclememREG253,0615136917834/lib64/libm-2.5.sotnslsnr35203520oraclememREG253,0141208917829/lib64/libpthread-2.5.sotnslsnr35203520oraclememREG253,0109824917839/lib64/libnsl-2.5.sotnslsnr35203520oraclememREG253,52070662211405436/home/oracle/10.2.0/db_1/lib/libclntsh.so.10.1tnslsnr35203520oraclememREG253,5380309711410641/home/oracle/10.2.0/db_1/lib/libnnz10.sotnslsnr35203520oraclememREG253,58349311407251/home/oracle/10.2.0/db_1/lib/libons.sotnslsnr35203520oraclememREG253,053880917532/lib64/libnss_files-2.5.sotnslsnr35203520oraclememREG253,5854511407615/home/oracle/10.2.0/db_1/lib/libskgxn2.so...
6.依照文件夹/home/oracle来搜寻,但不会打开子目录,用来显示目录下被进程开启的文件
[root@svr-db-test~]#lsof+d/home/oracleCOMMANDPIDUSERFDTYPEDEVICESIZENODENAMEtnslsnr3520oraclecwdDIR253,5409611059201/home/oracle
打开/home/oracle文件夹以及其子目录搜寻,用来显示目录下被进程开启的文件
[root@svr-db-test~]#lsof+D/home/oracle
显示内容太多了,不显示了
lsof -i 用以显示符合条件的进程情况 语法: lsof -i[46]
[:service|port] 46 –> IPv4 or IPv6 protocol –> TCP or UDP hostname –> Internet host name hostaddr –> IPv4位置 service –> /etc/service中的 service name (可以不只一个) port –> 端口号 (可以不只一个) 例:
[root@svr-db-test~]#lsof-itcp@192.168.2.245:1521-nCOMMANDPIDUSERFDTYPEDEVICESIZENODENAMEoracle15633oracle16uIPv44069605TCP192.168.2.203:31580->192.168.2.245:ncube-lm(ESTABLISHED)或[root@svr-db-test~]#lsof-itcp@192.168.2.245:1521COMMANDPIDUSERFDTYPEDEVICESIZENODENAMEoracle15633oracle16uIPv44069605TCP203.aibo.com:31580->192.168.2.245:ncube-lm(ESTABLISHED)
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
显示某用户的已经打开的文件(或该用户执行程序已经打开的文件)
[root@svr-db-test~]#lsof-uoracle或[root@svr-db-test~]#lsof-u0
仅打印进程,方便shell脚本调用
[root@svr-db-test~]#lsof-tcsshd31014545
关注: 进程调试命令:truss、strace和ltrace
进程无法启动,软件运行速度突然变慢,程序的”SegmentFault”等等都是让每个Unix系统用户头痛的问题,而这些问题都可以通过使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的”疑难杂症”。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
Linux系统lsof命令怎么用的详细内容,希望对您有所帮助,信息来源于网络。