s11.1 lsof:查看进程打开的文件

功能说明

lsof 全名为list open files,也就是列举系统中已经被打开的文件,通过lsof命令,就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

【语法格式】

lsof    [option]
lsof    [选项]
参数选项         解释说明
-c<进程名>     显示指定的进程名所打开的文件
-p<进程号>     显示指定的进程号所打开的文件
-i            通过监听指定的协议、端-和主机等信息,显示符合条件的进程信息
-u            显示指定用户使用的文件
-U            显示所有socket文件

范例11-1:显示使用文件的进程。

[root@lewen ~]# lsof /var/log/messages
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
abrt-watc  8718 root    4r   REG  253,0   404668 522404 /var/log/messages
rsyslogd  10046 root    6w   REG  253,0   404668 522404 /var/log/messages如果想知道某个特定的文件是由哪个进程在使用,就可以通过“lsof文件名”的方式
来得到。从上面的输出可以得知,/var/log/messages文件是由rsyslogd进程在使用。
输出中每列的含义具体如下。
-COMMAND:命令,进程的名称。
-PID:进程号。
-USER:进程的所有者。
-FD:文件描述符,它又包含如下内容。
  0:表示标准输出。1:表示标准输入。2:表示标准错误。u:表示该文件被打开并处于读取/写人模式。r:表示该文件被打开并处于只读模式。w:表示该文件被打开并处于写人模式。
-TYPE:文件类型,REG(regular)为普通文件。
-DEVICE:指定磁盘的名称。
-SIZE/OFF:文件的大小。
-NODE:索引节点。
-NAME:文件名称。

范例11-2:显示指定进程所打开的文件。

[root@lewen ~]# lsof -c rsyslog
COMMAND    PID USER   FD      TYPE             DEVICE SIZE/OFF   NODE NAME
rsyslogd 10046 root  cwd       DIR              253,0      224     64 /
rsyslogd 10046 root  rtd       DIR              253,0      224     64 /
rsyslogd 10046 root  txt       REG              253,0   664080 522402 /usr/sbin/rsyslogd
...

范例11-3:显示指定进程号所打开的文件。

[root@lewen ~]# lsof -p 10046
COMMAND    PID USER   FD      TYPE             DEVICE SIZE/OFF   NODE NAME
rsyslogd 10046 root  cwd       DIR              253,0      224     64 /
rsyslogd 10046 root  rtd       DIR              253,0      224     64 /
rsyslogd 10046 root  txt       REG              253,0   664080 522402 /usr/sbin/rsyslogd
...

范例11-4:监听指定的协议、端口和主机等信息,显示符合条件的进程信息。

在讲解范例之前,我们先来看看相应的语法格式:
lsof -i [46] [protocol][@8hostname][:service|port]
其中各项的含义如下。
  • 46:4代表IPv4,6代表IPv6。
  • protocol:传输协议,可以是TCP或UDP。
  • hostname:主机名称或者IP地址。
  • service:进程的服务名,例如NFS、SSH和FTP等。
  • port:系统中与服务对应的端口号。例如HTTP服务默认对应的端口号为80,SS日服务默认对应的端口号为22。了解了语法格式之后,再来看看范例的解答。
[root@lewen ~]# lsof -i #<=查看所有进程。
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    10044 root    3u  IPv4  49337      0t0  TCP *:ssh (LISTEN)
sshd    10044 root    4u  IPv6  49346      0t0  TCP *:ssh (LISTEN)
master  10215 root   13u  IPv4  50008      0t0  TCP localhost:smtp (LISTEN)
master  10215 root   14u  IPv6  50009      0t0  TCP localhost:smtp (LISTEN)
sshd    10805 root    3u  IPv4  52326      0t0  TCP k8s-node1:ssh->10.0.0.1:10662 (ESTABLISHED)[root@lewen ~]# lsof -i tcp # <=显示所有tcp网培连接的进程信息
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    10044 root    3u  IPv4  49337      0t0  TCP *:ssh (LISTEN)
sshd    10044 root    4u  IPv6  49346      0t0  TCP *:ssh (LISTEN)
master  10215 root   13u  IPv4  50008      0t0  TCP localhost:smtp (LISTEN)
master  10215 root   14u  IPv6  50009      0t0  TCP localhost:smtp (LISTEN)
sshd    10805 root    3u  IPv4  52326      0t0  TCP k8s-node1:ssh->10.0.0.1:10662 (ESTABLISHED)[root@lewen ~]# lsof -i :22 #<=显示端口为22的进程,这条命今很常用
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    10044 root    3u  IPv4  49337      0t0  TCP *:ssh (LISTEN)
sshd    10044 root    4u  IPv6  49346      0t0  TCP *:ssh (LISTEN)
sshd    10805 root    3u  IPv4  52326      0t0  TCP k8s-node1:ssh->10.0.0.1:10662 (ESTABLISHED)[root@lewen ~]# lsof -i tcp:22 #<==星示同时满足TCP和端口为22的进程。
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    10044 root    3u  IPv4  49337      0t0  TCP *:ssh (LISTEN)
sshd    10044 root    4u  IPv6  49346      0t0  TCP *:ssh (LISTEN)
sshd    10805 root    3u  IPv4  52326      0t0  TCP k8s-node1:ssh->10.0.0.1:10662 (ESTABLISHED)

范例11-5:显示指定用户使用的文件。

[lewen@k8s-node1 ~]$ lsof -u lewen
COMMAND   PID  USER   FD   TYPE DEVICE  SIZE/OFF     NODE NAME
bash    11081 lewen  cwd    DIR  253,0        62 33997200 /home/lewen
bash    11081 lewen  rtd    DIR  253,0       224       64 /
bash    11081 lewen  txt    REG  253,0    964608 50333656 /usr/bin/bash
bash    11081 lewen  mem    REG  253,0     61624    34664 /usr/lib64/libnss_files-2.17.so
bash    11081 lewen  mem    REG  253,0 106075056 50334298 /usr/lib/locale/locale-archive
bash    11081 lewen  mem    REG  253,0   2151672    34646 /usr/lib64/libc-2.17.so
bash    11081 lewen  mem    REG  253,0     19288    34652 /usr/lib64/libdl-2.17.so

范例11-6:显示所有socket文件。

[root@k8s-node1 ~]# lsof -U
COMMAND     PID    USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
systemd       1    root   12u  unix 0xffff964f7656e800      0t0 25117 /run/systemd/private
systemd       1    root   22u  unix 0xffff964f7656fc00      0t0 25169 /run/lvm/lvmpolld.socket
systemd       1    root   23u  unix 0xffff9650714f8400      0t0  8992 /run/systemd/notify
systemd       1    root   24u  unix 0xffff9650714f8000      0t0  8994 /run/systemd/cgroups-agent

 

转载于:https://www.cnblogs.com/fadewalk/p/10588992.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理解linux time命令的输出

Linux中time命令&#xff0c;我们经常用来计算 某个程序的运行耗时(real)&#xff0c; 用户态cpu耗时(user)&#xff0c; 系统态cpu耗时(sys)。例如&#xff1a;$ time foo real 0m0.003s user 0m0.000s sys 0m0.004s$ 那么这三个时间都具体代表什么意思…

matlab persistent静态变量

persistent关键字说明&#xff1b; matlab中persistent定义为一个静态变量&#xff0c;程序结束静态变量内存不释放&#xff0c;只有在matlab程序关闭时&#xff0c;静态变量的内存才被清除。当程序结束时&#xff0c;不希望变量的值被清空&#xff0c;这时可以用persistent关键…

小程序 转义_为内存密集型应用程序转义JVM堆

小程序 转义如果您曾经分配过大型Java堆&#xff0c;您就会知道在某个时候&#xff08;通常从大约4 GiB开始&#xff09;&#xff0c;您将开始遇到垃圾回收暂停的问题。 我不会详细说明为什么在JVM中会出现暂停&#xff0c;但是总之&#xff0c;当JVM进行完整的收集并且您有很…

Ubuntu 进入单用户模式—修改启动项利器

偶尔会遇到Ubuntu无法正常启动的情况&#xff0c;这时候需修改某些文件让系统正常启动&#xff0c;如果直接进入 recovery 模式&#xff0c;默认是文件权限只读&#xff0c;无法修改文件。这是我们需要进入recovery 的单用户模式&#xff0c;获得修改文件的权限。 1、重启ubunt…

博客教程中百度网盘地址

博客中百度网盘地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1ncGK5fXMBmmkuZGbBSohBw 提取码&#xff1a;v67x 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 转载于:https://www.cnblogs.com/PIESat/p/10593654.html

只有经验丰富的开发人员才能教您有关Java的5件事

深入研究Java之前需要了解的所有内容的概述 有许多工具&#xff0c;方法&#xff0c;环境和功能会改变您处理代码的方式&#xff0c;而这些通常是在学年期间不会遇到的。 尽管它在Java开发世界中迈出了第一步&#xff0c;但大多数实际学习都是在工作中进行的。 在接下来的文章…

conda命令

创建环境 conda create --name snowflake biopython 这条命令将会给biopython包创建一个新的环境&#xff0c;位置在/envs/snowflakes 很多跟在--后边常用的命令选项&#xff0c;可以被略写为一个短线加命令首字母。所以--name选项和-n的作用是一样的。通过conda -h或conda –-…

bzoj4443:[Scoi2015]小凸玩矩阵

传送门 二分答案是显然的啊&#xff0c;然后对于比二分出的值大的直接跑最大匹配&#xff0c;然后判定就好了 代码&#xff1a; #include<cstdio> #include<iostream> #include<algorithm> #include<vector> #include<cstring> using namespace …

GDB调试及其调试脚本的使用

一、GDB调试 1.1. GDB 概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许&#xff0c;各位比较喜欢那种图形界面方式的&#xff0c;像VC、BCB等IDE的调试&#xff0c;但如果你是在UNIX/Linux平台下做软件&#xff0c;你会发现GDB这个调试工具有比VC、BCB的图形…

Python中xlrd模块解析

xlrd 导入模块 import xlrd 2、打开指定的excel文件&#xff0c;返回一个data对象 data xlrd.open_workbook(file) #打开excel表&#xff0c;返回data对象 3、通过data对象可以得到各个sheet对象(一个excel文件可以有多个sheet&#xff0c;每个sheet就是一…

数学中常见的距离

1. 欧氏距离 最常见的两点之间或多点之间的距离表示法&#xff0c;又称之为欧几里得度量&#xff0c;它定义于欧几里得空间中&#xff0c;如点 x (x1,...,xn) 和 y (y1,...,yn) 之间的距离为&#xff1a; (1) 二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离&#xff1a; (…

使用Spring Boot和Heroku在20分钟内完成Java的单点登录

建筑物身份管理&#xff0c;包括身份验证和授权&#xff1f; 尝试Stormpath&#xff01; 我们的REST API和强大的Java SDK支持可以消除您的安全风险&#xff0c;并且可以在几分钟内实现。 注册 &#xff0c;再也不会建立auth了&#xff01; 大规模更新 我最初为本文撰写的代码…

OO第一次单元总结

第一次总结性博客 16071070 陈泽寅 2019.3.23 一、第一单元所学总结 首先先来总结一下第一单元我所学到的知识以及所感所悟。第一个单元&#xff0c;是我第一次接触JAVA语言&#xff0c;并且再使用了几次之后&#xff0c;就被这门语言的独有的魅力以及简便的用法所深深吸引。下…

汇编语言学习笔记(十二)-浮点指令

浮点数如何存储浮点寄存器浮点数指令浮点计算例子浮点高级运算CMOV移动指令 浮点数如何存储 浮点数的运算完全不同于整数&#xff0c;从寄存器到指令&#xff0c;都有一套独特的处理流程&#xff0c;浮点单元也称作x87 FPU。 现在看浮点数的表示方式&#xff0c;我们所知道的&a…

人工智能简述

人工智能研究的方向之一&#xff0c;是以所谓 “专家系统” 为代表的&#xff0c;用大量 “如果-就” &#xff08;If - Then&#xff09; 规则定义的&#xff0c;自上而下的思路。   人工神经网络 &#xff08; Artifical Neural Network&#xff09;&#xff0c;标志着另外…

Mockito 的使用

转自&#xff1a;Mockito 中文文档 ( 2.0.26 beta ) 转自&#xff1a;手把手教你 Mockito 的使用 参数匹配器 Argument Matcher(参数匹配器) Mockito通过equals()方法&#xff0c;来对方法参数进行验证。但是有时候我们需要更加灵活的参数需求&#xff0c;比如&#xff0c;匹配…

以SYSTEM用户运行CMD

在SCCM 经常会以NT AUTHOR\SYSTEM帐户操作。 安以下步骤可以以SYSTEM帐户打开一个CMD窗口。 1. 从微软网站下载PSTool。 2. 以管理员运行CMD&#xff0c;进入到解压的PSTool目录。 3. 运行psexec -i -s cmd.exe 4. 在新打开的CMD中运行whoami。 注&#xff1a;这个指令可以让你…

matlab cell

如果p为一个数&#xff0c;那么h(1)p,是没有问题的。 如果p为一个向量&#xff0c;那么h(1,:)p是没有问题的。 如果p是一个矩阵的话&#xff0c;上面的两种赋值方法都是会有错误的。 那么要如何处理呢&#xff1f; 这时就用到了cell数据类型了。cell的每个单元都可以存储任何数…