linux分析工具之lsof详解

一、概述 在linux中,所有东西都是以文件的形式存在的,所以我们在linux上的操作都是通过对文件的操作来执行我们所需要的逻辑,比如我们对文件数据的访问,修改,访问网络的连接等,刚好lsof(list open file)命令用于查看进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各...
摘要由CSDN通过智能技术生成

一、概述

      在linux中,所有东西都是以文件的形式存在的,所以我们在linux上的操作都是通过对文件的操作来执行我们所需要的逻辑,比如我们对文件数据的访问,修改,访问网络的连接等,刚好lsof(list open file)命令用于查看进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行

安装命令:yum install lsof  #centos系统

二、语法和内容含义

2.1、使用语法

语法:lsof [options] filename

常用选项:

无选项       #默认列出所有打开的文件相关信息
file        #列出打开文件存在的进程
-a          #使用AND逻辑,合并选项输出内容
-c<进程名>   #列出指定进程所打开的文件
-g          #列出GID号进程详情
-d<文件号>   #列出占用该文件描述符的进程
+d<目录>     #列出目录下被打开的文件
+D<目录>     #递归列出目录下被打开的文件
-n<目录>     #列出使用NFS的文件
-i<条件>     #列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号>   #列出指定进程号所打开的文件
-u          #列出UID号进程详情
-U          #获取 UNIX 套接口地址
-t          #列出进程
-h          #显示帮助信息
-v          #显示版本信息

2.2、内容含义

首先我们使用lsof | head 命令查看一下

[root@lgh ~]# lsof | head
COMMAND     PID           USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
init          1           root  cwd       DIR              253,0      4096          2 /
init          1           root  rtd       DIR              253,0      4096          2 /
init          1           root  txt       REG              253,0    150352    8519721 /sbin/init
init          1           root  mem       REG              253,0     66432    1310749 /lib64/libnss_files-2.12.so
init          1           root  DEL       REG              253,0              1310733 /lib64/libc-2.12.so
init          1           root  DEL       REG              253,0              1310744 /lib64/libgcc_s-4.4.7-20120601.so.1.#prelink#.AXbpAw
init          1           root  DEL       REG              253,0              1310761 /lib64/librt-2.12.so
init          1           root  DEL       REG              253,0              1310757 /lib64/libpthread-2.12.so.#prelink#.6p24pv
init          1           root  DEL       REG              253,0              1310783 /lib64/libdbus-1.so.3.4.0.#prelink#.M6wKKU
lsof -R +d /dev | head 命令查看一波(主要看FD这列),并且相比上面增加了PPID列
[root@mwpl003 ~]# lsof -R +d /dev | head
COMMAND     PID  PPID           USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
init          1     0           root    0u   CHR                1,3      0t0  4025 /dev/null
init          1     0           root    1u   CHR                1,3      0t0  4025 /dev/null
init          1     0           root    2u   CHR                1,3      0t0  4025 /dev/null
udevd      1872     1           root    0u   CHR                1,3      0t0  4025 /dev/null
udevd      1872     1           root    1u   CHR                1,3      0t0  4025 /dev/null
udevd      1872     1           root    2u   CHR                1,3      0t0  4025 /dev/null
rserver    3375     1 rstudio-server    0u   CHR                1,3      0t0  4025 /dev/null
rserver    3375     1 rstudio-server    1u   CHR                1,3      0t0  4025 /dev/null
rserver    3375     1 rstudio-server    2u   CHR                1,3      0t0  4025 /dev/null

每列的基本含义如下:

COMMAND:进程的名称
PID:进程标识符
PPID:父进程标识符(需要指定-R参数)
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。
TYPE:文件类型
DEVICE:指定磁盘的名称
SIZE/OFF:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称

其中FD文件描述符列表如下:

cwd:表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改
txt:该类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序
lnn:library references (AIX);
er:FD information error (see NAME column);
jld:jail directory (FreeBSD);
ltx:shared library text (code and
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值