【系统】lsof 命令简介

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
losf 命令可以列出某个进程打开的所有文件信息。打开的文件可能是普通的文件,目录,NFS文件,块文件,字符文件,共享库,常规管道,明明管道,符号链接,Socket流,网络Socket,UNIX域Socket,以及其它更多。
1 列出系统上所有打开的文件:
[root@rac1 mysql]# lsof | more
COMMAND     PID      USER   FD      TYPE             DEVICE       SIZE       NODE NAME
init          1      root  cwd       DIR                8,3       4096          2 /
init          1      root  rtd       DIR                8,3       4096          2 /
init          1      root  txt       REG                8,3      43496   17727785 /sbin/init

2 查看谁在使用指定的文件
[root@rac1 ~]# lsof /tmp/mysql.sock                            
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE     NODE NAME
mysqld  24319 mysql   16u  unix 0xffff8100918a8c00      44743909 /tmp/mysql.sock

3 递归查看指定目录下所有打开的文件
[root@rac1 ~]#  lsof +D /opt/mysql/  
COMMAND   PID  USER   FD   TYPE DEVICE       SIZE     NODE NAME
mysqld  24319 mysql  cwd    DIR    8,3       4096 19824642 /opt/mysql/data
mysqld  24319 mysql    3u   REG    8,3        152 19824646 /opt/mysql/data/mysql-log-bin.index
mysqld  24319 mysql    4uW  REG    8,3 4875878400 20283611 /opt/mysql/data/ibdata1
mysqld  24319 mysql    9uW  REG    8,3    5242880 20283612 /opt/mysql/data/ib_logfile0
mysqld  24319 mysql   10uW  REG    8,3    5242880 20283613 /opt/mysql/data/ib_logfile1
mysqld  24319 mysql   12w   REG    8,3      12957 19824652 /opt/mysql/data/slow_query.log

4 查看指定用户打开的所有文件
[root@rac1 ~]# lsof -u oracle
COMMAND    PID   USER   FD   TYPE             DEVICE     SIZE     NODE NAME
nmz       3211 oracle  cwd    DIR                8,3     4096 10813466 /home/oracle
nmz       3211 oracle  rtd    DIR                8,3     4096        2 /
nmz       3211 oracle  txt    REG                8,3   673908 19398913 /opt/rac/oracle/11.2.0/rac/ccr/bin/nmz
nmz       3211 oracle  mem    REG                8,3   125736  2820762 /lib/ld-2.5.so
nmz       3211 oracle  mem    REG                8,3  1606808  2818065 /lib/libc-2.5.so
nmz       3211 oracle    3uW  REG                8,3        0 19398727 /opt/rac/oracle/11.2.0/rac/ccr/hosts/rac1/log/sched.lock
nmz       3211 oracle    4w   REG                8,3      853 19398726 /opt/rac/oracle/11.2.0/rac/ccr/hosts/rac1/log/sched.log
nmz       3211 oracle    5r   REG                8,3    16896 20906832 /opt/rac/oracle/11.2.0/rac/ccr/mesg/nmzus.msb
注意:^符号,它执行取反操作 lsof -u ^oracle 表示除oracle 之外的用户打开的文件
5 查看某个程序打开的所有文件
-c选项限定只列出以apache开头的进程打开的文件:
root@rac1 shell]# lsof -c mysql
COMMAND   PID  USER   FD   TYPE             DEVICE       SIZE     NODE NAME
mysqld  24319 mysql  cwd    DIR                8,3       4096 19824642 /opt/mysql/data
mysqld  24319 mysql  rtd    DIR                8,3       4096        2 /
mysqld  24319 mysql  txt    REG                8,3   45648978 23429121 /usr/sbin/mysqld
mysqld  24319 mysql  mem    REG                8,3     139416 21201203 /lib64/ld-2.5.so
mysqld  24319 mysql  mem    REG                8,3    1713160 21201204 /lib64/libc-2.5.so
mysqld  24319 mysql  mem    REG                8,3      23360 21201206 /lib64/libdl-2.5.so
6 查看某个用户与某个程序打开的文件
lsof -u username -c 进程名    是或的关系,表示所有由某个用户或某个进程打开的文件
lsof -a -u username -c 进程名 是与的关系 
7 查看所有由某个PID对应的进程打开的文件
  使用 -p 参数来过滤输出
[root@rac1 ~]# lsof  -p 1
COMMAND PID USER   FD   TYPE DEVICE    SIZE     NODE NAME
init      1 root  cwd    DIR    8,3    4096        2 /
init      1 root  rtd    DIR    8,3    4096        2 /
init      1 root  txt    REG    8,3   43496 17727785 /sbin/init
init      1 root  mem    REG    8,3  139416 21201203 /lib64/ld-2.5.so
init      1 root  mem    REG    8,3 1713160 21201204 /lib64/libc-2.5.so
init      1 root  mem    REG    8,3   23360 21201206 /lib64/libdl-2.5.so
init      1 root  mem    REG    8,3   95464 21201216 /lib64/libselinux.so.1
init      1 root  mem    REG    8,3  247528 21201215 /lib64/libsepol.so.1
init      1 root   10u  FIFO   0,17             1477 /dev/initctl
8 查看网络连接
-i 参数列出所有打开了网络套接字(TCP和UDP)的进程
 a 查看tcp 连接
 b 查看udp 连接
 c 找到使用某个端口的进程
   # lsof -i :3306
   :3306和-i选项组合可以让lsof列出占用TCP或UDP的25端口的进程。
 
 d 找到使用某个udp端口号的进程
   # lsof -i udp:53
 e 可以找到使用某个tcp端口的进程:
   # lsof -i tcp:80
 f 找到某个用户的所有网络连接
   # lsof -a -u mysql -i
   [root@rac1 ~]# lsof -a -u mysql -i
   COMMAND   PID  USER   FD   TYPE   DEVICE SIZE NODE NAME
   mysqld  24319 mysql   11u  IPv6 48586515       TCP rac1:mysql->rac1:39045 (ESTABLISHED)
   mysqld  24319 mysql   14u  IPv6 44743908       TCP *:mysql (LISTEN)

9 列出所有NFS(网络文件系统)文件
   # lsof -N
   这个参数很好记,-N就对应NFS。

10 列出所有对应某个组id的进程
   # lsof -g 1234
   进程组用来来逻辑上对进程进行分组,这个例子查找所有PGID为1234的进程打开的文件。
11 列出所有与某个描述符关联的文件
   # lsof -d 2   会列出所有以描述符2打开的文件。
   可以为描述符指定一个范围:
   # lsof -d 0-2 会列出所有描述符为0,1,2的文件。
   -d选项还支持其它很多特殊值,下面的命令列出所有内存映射文件:
   # lsof -d mem
   txt则列出所有加载在内存中并正在执行的进程:
   # lsof -d txt
12 输出使用某些资源的进程pid
   # lsof -t -i
   -t选项输出进程的PID,你可以将它和-i选项组合输出使用某个端口的进程的PID,下面的命令将会杀掉所有使用网络的进程:
   # kill -9 `lsof -t -i`
13  循环列出文件
  # lsof -r 1
   -r选项让lsof可以循环列出文件直到被中断,参数1的意思是每秒钟重复打印一次,这个选项最好同某个范围比较小的查询组合使用,比如用来监测网络活动:
  # lsof -r 1 -u john -i -a
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
1天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
11天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
5天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
449 192
|
3天前
|
数据采集 消息中间件 人工智能
跨系统数据搬运的全方位解析,包括定义、痛点、技术、方法及智能体解决方案
跨系统数据搬运打通企业数据孤岛,实现CRM、ERP等系统高效互通。伴随数字化转型,全球市场规模超150亿美元,中国年增速达30%。本文详解其定义、痛点、技术原理、主流方法及智能体新范式,结合实在Agent等案例,揭示从数据割裂到智能流通的实践路径,助力企业降本增效,释放数据价值。
|
9天前
|
人工智能 自然语言处理 安全
国内主流Agent工具功能全维度对比:从技术内核到场景落地,一篇读懂所有选择
2024年全球AI Agent市场规模达52.9亿美元,预计2030年将增长至471亿美元,亚太地区增速领先。国内Agent工具呈现“百花齐放”格局,涵盖政务、金融、电商等多场景。本文深入解析实在智能实在Agent等主流产品,在技术架构、任务规划、多模态交互、工具集成等方面进行全维度对比,结合市场反馈与行业趋势,为企业及个人用户提供科学选型指南,助力高效落地AI智能体应用。
|
5天前
|
消息中间件 安全 NoSQL
阿里云通过中国信通院首批安全可信中间件评估
近日,由中国信通院主办的 2025(第五届)数字化转型发展大会在京举行。会上,“阿里云应用服务器软件 AliEE”、“消息队列软件 RocketMQ”、“云数据库 Tair”三款产品成功通过中国信通院“安全可信中间件”系列评估,成为首批获此认证的中间件产品。此次评估覆盖安全可信要求、功能完备性、安全防护能力、性能表现、可靠性与可维护性等核心指标,标志着阿里云中间件产品在多架构适配与安全能力上达到行业领先水平。
315 195

热门文章

最新文章