一,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. 《Redis内存数据库》Redis环境搭建

    前言 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多 ...

  2. oracle之二redo日志

    redo 日志 4.1 redo (重做) log 的功能:数据recovery4.2 redo log 特征:     1)记录数据库的变化(DML.DDL)     2)用于数据块的recover ...

  3. sql注入--bool盲注,时间盲注

    盲注定义: 有时目标存在注入,但在页面上没有任何回显,此时,我们需要利用一些方法进行判断或者尝试得到数据,这个过程称之为盲注. 布尔盲注: 布尔盲注只有true跟false,也就是说它根据你的注入信息 ...

  4. dubbo学习(二)配置dubbo XML方式配置

    provider(生产者) <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo= ...

  5. 关于数学公式Markdown

    打开写博客(这都打不开就...) 再打开"选项". 选"启用数学公式支持"对(以后有用嘻嘻) 在默认编辑器里有Markdown选对. 然后就可以 \[\sum\ ...

  6. xxe漏洞,及xml

    xxe漏洞 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.XML文档结构包括XML声明.DTD文档类型定义(可选).文 ...

  7. OSI和TCP/IP参考模型

    分层思想: 分层模型是一种开发网络协议的设计方法. 把节点之间的通讯这个复杂的问题,分成了若干个简单的小问题逐一解决. 把网络相邻节点之间通过接口进行通信,下层为上层提供服务.当网络发生故障,很容易确 ...

  8. Linux Wait Queue 等待队列

    一.引言 linux 内核的等待队列和进程调度息息相关,进程在某些情况下必须等待某些事件的发生,例如:等待一个磁盘操作的终止,等待释放系统资源,或等待指定的时间间隔. 等待队列实现了在事件上的条件等待 ...

  9. Python+selenium+unittest实现网址登陆及页面跳转校验

    这个网址登陆的单元测试代码都写在一个文件中,方便初学者查看和调试:实际测试工作中根据情况进行模块化处理. 话不多说,分布上代码 一.import必要模块 二.创建测试类,初始化测试环境 三.定义登陆方 ...

  10. Matlab中num2str函数的用法

    转载:https://blog.csdn.net/SMF0504/article/details/51836062 函数功能: 把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出 ...