[转帖]linux lsof 用法简介
linux lsof 用法简介
https://www.cnblogs.com/saneri/p/5333333.html
1.简介:
lsof(list open files)是一个列出当前系统打开文件的工具。
只需输入 lsof 就可以生成大量的信息,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
常用参数:
lsof语法格式是:
lsof [options] filename
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
lsof filename 显示打开指定文件的所有进程lsof -a 表示两个参数都必须满足时才显示结果lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件lsof -u username 显示所属user进程打开的文件lsof -g gid 显示归属gid的进程情况lsof +d /DIR/ 显示目录下被进程打开的文件lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长lsof -d FD 显示指定文件描述符的进程lsof -n 不将IP转换为hostname,缺省是不加上-n参数lsof -i 用以显示符合条件的进程情况lsof -i[46] [protocol][@hostname|hostaddr][:service|port] 46 --> IPv4 or IPv6 protocol --> TCP or UDP hostname --> Internet host name hostaddr --> IPv4地址 service --> /etc/service中的 service name (可以不只一个) port --> 端口号 (可以不只一个) |
lsof 的示例输出:
|
1
2
3
4
5
6
|
[root@localhost ~]# lsofCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEinit 1 root cwd DIR 253,0 4096 2 /init 1 root rtd DIR 253,0 4096 2 /init 1 root txt REG 253,0 150352 2228266 /sbin/initinit 1 root mem REG 253,0 65928 1966110 /lib64/libnss_files-2.12.so |
lsof输出各列信息的意义如下:
|
1
2
3
4
5
6
7
8
|
lsof输出各列信息的意义如下:<br>COMMAND:进程的名称 PID:进程标识符USER:进程所有者FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等DEVICE:指定磁盘的名称SIZE:文件的大小NODE:索引节点(文件在磁盘上的标识)NAME:打开文件的确切名称 |
2.lsof常用用法:
2.1 监控网络
查看指定端口有哪些进程在使用(lsof -i 列出所有的打开的网络连接):
|
1
2
3
4
5
6
|
[root@localhost ~]# lsof -i:22COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 17909 root 3u IPv4 2089344 0t0 TCP wx.9888.cn:ssh->bogon:61574 (ESTABLISHED)sshd 17911 www 3u IPv4 2089344 0t0 TCP wx.9888.cn:ssh->bogon:61574 (ESTABLISHED)sshd 17933 root 3u IPv4 277791 0t0 TCP *:ssh (LISTEN)sshd 17933 root 4u IPv6 277793 0t0 TCP *:ssh (LISTEN) |
列出被某个进程打开所有的网络文件:
|
1
2
3
|
[root@localhost ~]# lsof -i -a -p 29091或者[root@localhost ~]#lsof -i -a -c ssh |
列出所有 tcp、udp 连接:
|
1
2
|
lsof -i tcp;lsof -i udp; |
列出所有 NFS 文件:
|
1
|
[root@E08-8th02 ~]# lsof -N -u www -a |
2.2 监控打开的文件设备:
查看文件、设备被哪些进程占用
|
1
2
3
|
[root@localhost ~]# lsof /dev/tty1COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEXorg 1648 root 6u CHR 4,1 0t0 5613 /dev/tty1 |
2.3 监控文件系统:
指定目录、挂载点,可以看到有哪些进程打开了其下的文件:
|
1
2
3
4
|
# lsof /data/COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEbash 15983 jian cwd DIR 8,5 4096 8252 /data/backup#这在 umount 某个文件系统失败时非常有用(通常会报该 FS is busy) |
列出某个目录(挂载点 如 /home 也行)下被打开的文件:
|
1
2
3
4
5
|
# lsof +D /var/log/COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMErsyslogd 488 syslog 1w REG 8,1 1151 268940 /var/log/syslogrsyslogd 488 syslog 2w REG 8,1 2405 269616 /var/log/auth.logconsole-k 144 root 9w REG 8,1 10871 269369 /var/log/ConsoleKit/history |
列出被指定进程名打开的文件
|
1
2
3
4
5
6
7
|
[root@localhost ~]# lsof -c ssh -c initCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEinit 1 root cwd DIR 253,0 4096 2 /init 1 root rtd DIR 253,0 4096 2 /init 1 root txt REG 253,0 150352 2228266 /sbin/initinit 1 root mem REG 253,0 65928 1966110 /lib64/libnss_files-2.12.soinit 1 root DEL REG 253,0 1966094 /lib64/libc-2.12.so |
2.4 监控进程:
指定进程号,可以查看该进程打开的文件:
|
1
2
3
4
5
|
[root@localhost ~]# lsof -p 29084COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEnginx 29084 www cwd DIR 253,0 4096 2359841 /apps/product/nginx/confnginx 29084 www rtd DIR 253,0 4096 2 /nginx 29084 www txt REG 253,0 5497249 2359840 /apps/product/nginx/sbin/nginx |
当你想要杀掉某个用户所有打开的文件、设备,你可以这样:
|
1
2
|
kill -9 `lsof -t -u www`#此处 -t 的作用是单独的列出 进程 id 这一列。 |
2.5 监控用户:
查看指定用戶打开的文件(lsof -u ^www可以排除某用户):
|
1
2
3
4
5
6
|
[root@localhost ~]# lsof -u wwwCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEtail 2409 www cwd DIR 253,0 4096 2 /tail 2409 www rtd DIR 253,0 4096 2 /tail 2409 www txt REG 253,0 61368 670089 /usr/bin/tailtail 2409 www mem REG 253,0 156928 1972676 /lib64/ld-2.12.so |
2.6 监控应用程序:
查看指定程序打开的文件:
|
1
2
3
4
5
|
[root@localhost ~]# lsof -c nginxCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEnginx 28624 root cwd DIR 253,0 4096 2359841 /apps/product/nginx/confnginx 28624 root rtd DIR 253,0 4096 2 /nginx 28624 root txt REG 253,0 5497249 2359840 /apps/product/nginx/sbin/nginx |
2.7 组合逻辑查询条件:
只有多个查询条件都满足, 用 "-a" 参数,默认是 -o 。
|
1
2
3
4
5
6
7
|
[root@localhost ~]# lsof -a -c bash -u rootCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEbash 25602 root cwd DIR 253,0 4096 1572865 /rootbash 25602 root rtd DIR 253,0 4096 2 /bash 25602 root txt REG 253,0 938832 1703983 /bin/bashbash 25602 root mem REG 253,0 156928 1972676 /lib64/ld-2.12.sobash 25602 root mem REG 253,0 22536 1972681 /lib64/libdl-2.12.so |
[转帖]linux lsof 用法简介的更多相关文章
- linux lsof 用法简介
1.简介: lsof(list open files)是一个列出当前系统打开文件的工具. 只需输入 lsof 就可以生成大量的信息,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用 ...
- linux 系统监控、诊断工具之 lsof 用法简介
1.lsof 简介 lsof 是 Linux 下的一个非常实用的系统级的监控.诊断工具. 它的意思是 List Open Files,很容易你就记住了它是 "ls + of"的组合 ...
- linux lsof用法
linux lsof命令详解 简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可 ...
- lsof用法简介
lsof:一个功能强大的命令 lsof命令的原始功能是列出打开的文件的进程,但LINUX下,所有的设备都是以文件的行式存在的,所以,lsof的功能很强大! [root@limt01 ~]# lsof ...
- Linux screen用法简介
[admin@VM_0_2_centos ~]$ screen -bash: screen: 未找到命令 [admin@VM_0_2_centos ~]$ sudo su [sudo] passwor ...
- lsof命令简介
lsof命令简介: lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件 ...
- linux lsof命令详解
linux lsof命令详解 简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访 ...
- Linux lsof 命令
lsof(list open files)是一个查看进程打开的文件的工具. 在 linux 系统中,一切皆文件.通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以 lsof 命令不仅可以查 ...
- [转贴]linux lsof命令详解
linux lsof命令详解 https://www.cnblogs.com/sparkbj/p/7161669.html 简介 lsof(list open files)是一个列出当前系统打开文件的 ...
随机推荐
- spring事务的三种配置应用实例
0.项目结构 具体代码见:https://github.com/xkzhangsan/spring-transaction-practice.git,包括创建表sql在内. 1.编程式事务使用Data ...
- Python脚本1
[轮子]P123. 求最大约数,并鉴别是否为素数
- Kail Linux xface 2019.2
概述: -OS: Kali-Rolling (2019.2) -DE: XFCE -WM: Arc-Dark -WM Theme: Arc-Dark -Icons: Korla -Term Font: ...
- android studio学习----gradle命令详解
首先来给大家介绍一种简便并且个人最喜欢的一种办法.很多时候我们在GitHub上看到一个不错的开源项目,一般有两种需求,阅读源码和查看运行效果,如果是单纯的查看源码我更喜欢用一些轻量级编辑器,如vim, ...
- OL7.7安装Oracle 11.2.0.4
安装环境准备工具 yum –y install oracle-rdbms-server-11gR2-preinstall 创建目录 mkdir -p /u01/app/oracle/product/1 ...
- Oracle使用命令行登录提示ERROR: ORA-01017: invalid username/password; logon denied
刚在Windows上面安装好Oracle 10g,刚开始使用PLSQLDevelop软件登录提示 not logged on ,然后使用命令行登录提示 ERROR: ORA-01017: inval ...
- 关于DFS的理解
DFS(深度优先搜索)相当于暴力寻找有效解的过程 如果把多种情况写成一个树的方式 那么DFS的实质就是遍历所有分枝来寻找最优解 而DFS中遍历所有解的方式采用了我们称之为回溯法的东西 如图所示 图中的 ...
- jmeter压测学习4-正则表达式提取
前言 上一个接口返回的token作为下个接口的入参,除了前面一篇讲到的用json提取器提取,也可以用正则提取. json提取器只能提取json格式的数据,正则可以匹配任意的返回. 我现在有一个登陆接口 ...
- linux(02)基础shell命令
Linux(02)之shell命令 一,Linux命令行的组成结构 在我们的linux启动,登陆成功之后会显示: 这就是linux的命令行的组成结构 二,常见命令 1,Linux系统命令操作语法格式 ...
- 201871010114-李岩松《面向对象程序设计(java)》第十七周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...