[转帖]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 ~] # lsof COMMAND PID USER FD TYPE DEVICE SIZE / OFF NODE NAME init 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 / init init 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:22 COMMAND PID USER FD TYPE DEVICE SIZE / OFF NODE NAME sshd 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/tty1 COMMAND PID USER FD TYPE DEVICE SIZE / OFF NODE NAME Xorg 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 NAME bash 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 NAME rsyslogd 488 syslog 1w REG 8 , 1 1151 268940 / var / log / syslog rsyslogd 488 syslog 2w REG 8 , 1 2405 269616 / var / log / auth.log console - 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 init COMMAND PID USER FD TYPE DEVICE SIZE / OFF NODE NAME init 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 / init init 1 root mem REG 253 , 0 65928 1966110 / lib64 / libnss_files - 2.12 .so init 1 root DEL REG 253 , 0 1966094 / lib64 / libc - 2.12 .so |
2.4 监控进程:
指定进程号,可以查看该进程打开的文件:
1
2
3
4
5
|
[root@localhost ~] # lsof -p 29084 COMMAND PID USER FD TYPE DEVICE SIZE / OFF NODE NAME nginx 29084 www cwd DIR 253 , 0 4096 2359841 / apps / product / nginx / conf nginx 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 www COMMAND PID USER FD TYPE DEVICE SIZE / OFF NODE NAME tail 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 / tail tail 2409 www mem REG 253 , 0 156928 1972676 / lib64 / ld - 2.12 .so |
2.6 监控应用程序:
查看指定程序打开的文件:
1
2
3
4
5
|
[root@localhost ~] # lsof -c nginx COMMAND PID USER FD TYPE DEVICE SIZE / OFF NODE NAME nginx 28624 root cwd DIR 253 , 0 4096 2359841 / apps / product / nginx / conf nginx 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 root COMMAND PID USER FD TYPE DEVICE SIZE / OFF NODE NAME bash 25602 root cwd DIR 253 , 0 4096 1572865 / root bash 25602 root rtd DIR 253 , 0 4096 2 / bash 25602 root txt REG 253 , 0 938832 1703983 / bin / bash bash 25602 root mem REG 253 , 0 156928 1972676 / lib64 / ld - 2.12 .so bash 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)是一个列出当前系统打开文件的 ...
随机推荐
- Linux文本文件——管理文本的命令
Linux文本文件——管理文本的命令 摘要:本文主要学习了在Linux中管理文本的命令. cat命令 cat命令用来显示文本文件的内容,也可以把几个文件内容附加到另一个文件中,即连接合并文件,是Con ...
- linux 环境下部署 Asp.Net Core 项目 访问 oralce 数据库
1.ASP.NET Core 是一个跨平台的高性能开源框架,可以部署到Linux上,那项目部署在Linux上有哪些好处呢? 1.linux硬件需求小,大部分版本免费,成本低. 2.linux的用户管理 ...
- du查看某个文件或目录占用磁盘空间的大小
一.du的功能:`du` reports the amount of disk space used by the specified files and for each subdirectory ...
- c++和c动态申请二维数组
这是我面试中遇到的一道题,用c和c++分别申请一个二维数组,int **res,要求申请后的可以使用res[3][4]这一类防存方式. 这个是没有错误检查的版本. 答案: c++语言的版本 int * ...
- 关于微信小程序开发环境苹果IOS真机预览报SSL协议错误问题解决方案
微信小程序开发环境苹果IOS真机预览报SSL协议错误问题 原文来自:https://blog.csdn.net/qq_27626333/articl ...
- 基本 Python 面试问题
目录 1.为什么学习Python? 2.通过什么途径学习的Python? 3.Python和Java.PHP.C.C#.C++等其他语言的对比? 4.简述解释型和编译型编程语言? 5.Python解释 ...
- web权限验证方法说明[转载]
前言 本文将会从最基本的一种web权限验证说起,即HTTP Basic authentication,然后是基于cookies和tokens的权限验证,最后则是signatures和一次性密码. HT ...
- CF1245 A. Good ol' Numbers Coloring(java与gcd)
题意:给定数字A和数字B,问是否满足gcd(A,B)==1. 思路:可以直接写函数gcd.也可以用大数自带的gcd功能. 代码1: /* @author nimphy @create 2019-11- ...
- day32_8_14 并发编程三 线程的GIL
一.GIL 什么是GIL? GIL是一个全局排他锁,简单来说就是为了防止多线程并行操作的锁.这里有官方解释: In CPython, the global interpreter lock, or G ...
- Linux下的SVN服务器搭建(八)
1. 通过yum命令安装svnserve yum -y install subversion #查看svn安装位置 rpm -ql subversion 2. 创建版本库目录(此仅为目录,为后面创建版 ...