一,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. 【二叉树-所有路经系列(根->叶子)】二叉树的所有路径、路径总和 II、路径总和、求根到叶子节点数字之和(DFS)

    总述 全部用DFS来做 重点一:参数的设置:为Root,路径字符串,路径List集合. 重点二:步骤: 1 节点为null 2 所有节点的操作 3 叶子结点的操作 4 非叶节点的操作 题目257. 二 ...

  2. [LeetCode]Mysql系列5

    题目1 1112. 每位学生的最高成绩 编写一个 SQL 查询,查询每位学生获得的最高成绩和它所对应的科目,若科目成绩并列,取 course_id 最小的一门.查询结果需按 student_id 增序 ...

  3. sql.表值类型

    表值类型是在sql server 2008中新加入的功能,我个人觉得确实很有用,之前从没用过,自从来到现在的公司后学到很多东西,所以和大家分享一下. ------建表值类型语法------------ ...

  4. 复习 | 重温jQuery和Zepto的API

    jq和zepto很相似有许多共同的api,zepto也出了很多与jq不一样的api,总的来说,两者更相似,但是zepto更轻量一点,正好公司也在用,复习这两个没错 jq中的zepto的事件和ajax我 ...

  5. Js获取某个节点的类名

    1. document.querySelectorAll(".style-color")[0].getAttribute("class")   2. $('.s ...

  6. web网站——apache和nginx对比02

    nginx介绍 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理 ...

  7. C#开发PACS医学影像处理系统(十九):Dicom影像放大镜

    在XAML代码设计器中,添加canvas画布与圆形几何对象,利用VisualBrush笔刷来复制画面内容到指定容器: <Canvas x:Name="CvsGlass" Wi ...

  8. ribbon源码(2) 负载均衡器

    负载均衡器对外提供负载均衡的功能,本质上是是维护当前服务的服务器列表和服务器状态,通过负载均衡算法选取合适的服务器地址. 用户可以通过实现ILoadBalancer来实现自己的负载均衡器,ribbon ...

  9. 一文读懂MySQL的索引结构及查询优化

    回顾前文: 一文学会MySQL的explain工具 (同时再次强调,这几篇关于MySQL的探究都是基于5.7版本,相关总结与结论不一定适用于其他版本) MySQL官方文档中(https://dev.m ...

  10. kafka学习(二)kafka工作流程分析

    一.发送数据 follower的同步流程 PS:Producer在写入数据的时候永远的找leader,不会直接将数据写入follower PS:消息写入leader后,follower是主动的去lea ...