一,lsof的用途

lsof,List Open Files 列出当前系统打开文件的工具。

在linux环境下,任何事物都以文件的形式存在,

所以lsof通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,lsof安装:

1,查看lsof所属的包

[root@blog ~]# whereis lsof
lsof: /usr/bin/lsof /usr/share/man/man1/lsof.1.gz [root@blog ~]# rpm -qf /usr/bin/lsof
lsof-4.91-2.el8.x86_64

2,如果提示找不到lsof命令,可以用yum安装

[root@blog ~]# yum install lsof

三,查看lsof的版本和帮助

1,查看版本

[root@blog ~]# lsof -v
lsof version information:
revision: 4.91
...

2,查看帮助:

[root@blog ~]# lsof -h 

四,lsof的应用例子:

1,查看系统中所有打开的文件

[root@blog ~]# lsof

2,查看某个用户打开的文件

# -u 参数用来指定要查看的用户

[root@blog ~]# lsof -u mysql
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld_sa 17246 mysql cwd DIR 253,1 129 201372497 /usr/local/soft/mysql
mysqld_sa 17246 mysql rtd DIR 253,1 272 128 /
mysqld_sa 17246 mysql txt REG 253,1 1219216 16999680 /usr/bin/bash
...

3,查看有哪些进程正在打开某个文件?

[root@blog ~]# lsof /data/mysql/log/mysql-slow.log
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 17700 mysql 29w REG 253,1 11018 34357947 /data/mysql/log/mysql-slow.log

说明:lsof后加文件名即可列出正在打开文件的进程

4,列出某个进程正在打开的文件(最常用的用法)

# -p 指定要查看的进程

[root@blog ~]# lsof -p 17700
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 17700 mysql cwd DIR 253,1 4096 302055050 /data/mysql/data
mysqld 17700 mysql rtd DIR 253,1 272 128 /
mysqld 17700 mysql txt REG 253,1 1078700088 218133053 /usr/local/soft/mysql/bin/mysqld
mysqld 17700 mysql DEL REG 0,17 3207767 /[aio]
mysqld 17700 mysql DEL REG 0,17 3207766 /[aio]
mysqld 17700 mysql DEL REG 0,17 3207765 /[aio]
mysqld 17700 mysql DEL REG 0,17 3207764 /[aio]
...

说明:

输出字段的说明:

FD 表示文件描述符号:

如果值是3w,表示:它的文件描述符是 3 号,而 3 后面的 w ,表示以写的方式打开

TYPE 表示文件类型

NAME 表示文件路径

5,列出多个进程正在打开的文件(最常用的用法)

[root@blog ~]# lsof -p 7492,7493,7494 

6,列出所有的网络连接

# -i 用来查看网络连接的进程

[root@blog ~]# lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
NetworkMa 834 root 18u IPv4 21344 0t0 UDP blog:bootpc
nginx 7491 root 22u IPv4 3087363 0t0 TCP *:http (LISTEN)
nginx 7491 root 23u IPv4 3087364 0t0 TCP *:54321 (LISTEN)
nginx 7492 nginx 22u IPv4 3087363 0t0 TCP *:http (LISTEN)

7,指定的连接的类型:

列出所有tcp 网络连接信息

[root@blog ~]# lsof -i tcp

列出所有udp 网络连接信息

[root@blog ~]# lsof -i udp

8,列出在使用某个端口的进程

#  -i :port用来指定要查看的端口

[root@blog ~]# lsof -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 17700 mysql 31u IPv6 3206926 0t0 TCP *:mysql (LISTEN)

9,列出nginx进程现在打开的文件

# -c 指定要查看的进程的名字

[root@blog ~]# lsof -c nginx

10,-n参数:不将IP转换为hostname,默认会进行转换,即默认不加上-n参数,

[root@blog ~]# lsof -n -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 17700 mysql 31u IPv6 3206926 0t0 TCP *:mysql (LISTEN)

11,列出所有使用fd为指定值的进程

# -d:指定文件描述符的值

[root@blog ~]# lsof -d 1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root 1u CHR 1,3 0t0 11236 /dev/null
systemd-j 513 root 1w CHR 1,3 0t0 11236 /dev/null

五,查看centos的版本:

[root@blog ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

centos8平台使用lsof的更多相关文章

  1. centos8平台:举例讲解redis6的ACL功能(redis6.0.1)

    一,为什么redis6要增加acl功能模块? 什么是acl? 访问控制列表(ACL)是一种基于包过滤的访问控制技术, 它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃 redis6增加了 ...

  2. centos8平台用ffprobe获取视频文件信息(ffmpeg4.2.2)

    一,ffprobe的作用 ffprobe是强大的视频分析工具, 用于从多媒体流中获取相关信息或查看文件格式信息, 并以可读的方式打印 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https:// ...

  3. centos8平台使用wkhtmltopdf实现html网页转pdf

    一,wkhtmltopdf的用途 wkhtmltopdf可以直接把任何一个可以在浏览器中浏览的网页直接转换成一个pdf 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnb ...

  4. centos8平台安装gitosis服务

    一,git服务器端:准备gitosis需要的各依赖软件 1,确认openssh是否存在?如不存在,以下列命令进行安装 [root@yjweb ~]# yum install openssh opens ...

  5. centos8平台:用fontconfig安装及管理字体(fc-list/fc-match/fc-cache)

    一,fc-list所属的rpm包 [root@blog ~]$ whereis fc-list fc-list: /usr/bin/fc-list /usr/share/man/man1/fc-lis ...

  6. centos8平台:redis6配置启用io多线程(redis6.0.1)

    一,linux平台上redis6的安装 请参见这一篇: https://www.cnblogs.com/architectforest/p/12830056.html 说明:刘宏缔的架构森林是一个专注 ...

  7. centos8平台安装redis6.0.1

    一,redis的官网: https://redis.io/ redis6于5月3日正式发布,它的新增功能: acl 多线程io cluster proxy resp3协议 本文演示redis6.0.1 ...

  8. centos8平台使用iotop监控磁盘io

    一,iotop的作用: iotop是监视磁盘I/O使用状况的top类工具, 可以针对进程和线程统计io的使用情况 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblog ...

  9. centos8平台yum无法安装一些常用软件的解决,如:screen,iftop,nethogs

    一,例如:安装screen时报错: [root@localhost liuhongdi]# yum install screen 上次元数据过期检查:17:39:58 前,执行于 2020年03月18 ...

随机推荐

  1. TNFE-Weekly[第七十二周已更新]

    前端行业发展飞速,新技术如雨后春笋般快速出现,尤其是各种小程序陆续推出,相关的信息.文章也铺天盖地的遍布在各处,我们有时候会困惑,不知道哪些信息对于自己是有价值的,那么TNFE-腾讯新闻前端团队启动了 ...

  2. jmeter(一)

    一.首先是下载:下载地址为:http://jmeter.apache.org/download_jmeter.cgi选择Binaries下的相应压缩包.ps:jmeter是开源项目,一般这种开源项目B ...

  3. JVM运行时数据区划分

    Java内存空间 内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行.JVM内存布局规定了JAVA在运行过程中内存申请.分配.管理的策略,保证了JVM的高效稳 ...

  4. CSS常用布局技巧 实例

    末尾用省略号! white-space: nowrap; overflow: hidden; text-overflow: ellipsis; ######################## 两个i ...

  5. 简单版 Promise/A+,通过官方872个测试用例

    promise 标准 在实现 Promise 之前要清楚的是 JavaScript 中的 Promise 遵循了 Promises/A+ 规范,所以我们在编写 Promise 时也应当遵循这个规范,建 ...

  6. System Verilog随笔(1)

    测试文件该怎么写? 首先看一个简单代码案例: `timescale 1ns/10ps //1 module test;   //2 intput wire[15:0] a; output reg[15 ...

  7. 基于SpringBoot+SpringDataJpa后台管理

    昨天朋友找我喝酒,说30岁了,比较焦虑,钱没赚到,整天被媳妇数落. 其实现在我们看到的不一定就事真实的情况,就算从高斯分布看,平平淡淡的人生才是大部分人的轨迹.当然抖音.知乎上的不能比,人均收入百万, ...

  8. burp suite 之 Repeater(中继器)

    Repeater:对HTTP请求的修改,通常用于上传攻击 通过抓包后将请求包通过选项卡发送到 Repeater下 右下角 显示 页面大小为18809字节 可以自定义添加主机 大小写敏感 正则表达式 文 ...

  9. Azure Cosmos DB (一) 入门介绍

    一,引言 今天是国庆.中秋双节房价的第三天,今天抽时间分享一篇关于使用Azure 提供的一项NoSql 服务-----Azure Cosmos DB.就有人问了,我听说过 MongoDB.Redis ...

  10. 05 C语言的数据类型

    C语言的数据类型 在C 中,数据类型是用来声明不同类型的变量或函数的一个广泛的概念.变量的数据类型决定了变量存储占用的空间大小,以及如何去解释存储的位模式. C 中的数据类型可分为以下几大类: 序号 ...