losf 命令可以列出某个进程打开的所有文件信息。打开的文件可能是普通的文件,目录,NFS文件,块文件,字符文件,共享库,常规管道,明明管道,符号链接,Socket流,网络Socket,UNIX域Socket,以及其它更多。
1 列出系统上所有打开的文件:
[root@rac1 mysql]# lsof | more
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 8,3 4096 2 /
init 1 root rtd DIR 8,3 4096 2 /
init 1 root txt REG 8,3 43496 17727785 /sbin/init
2 查看谁在使用指定的文件
[root@rac1 ~]# lsof /tmp/mysql.sock
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 24319 mysql 16u unix 0xffff8100918a8c00 44743909 /tmp/mysql.sock
3 递归查看指定目录下所有打开的文件
[root@rac1 ~]# lsof +D /opt/mysql/
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 24319 mysql cwd DIR 8,3 4096 19824642 /opt/mysql/data
mysqld 24319 mysql 3u REG 8,3 152 19824646 /opt/mysql/data/mysql-log-bin.index
mysqld 24319 mysql 4uW REG 8,3 4875878400 20283611 /opt/mysql/data/ibdata1
mysqld 24319 mysql 9uW REG 8,3 5242880 20283612 /opt/mysql/data/ib_logfile0
mysqld 24319 mysql 10uW REG 8,3 5242880 20283613 /opt/mysql/data/ib_logfile1
mysqld 24319 mysql 12w REG 8,3 12957 19824652 /opt/mysql/data/slow_query.log
4 查看指定用户打开的所有文件
[root@rac1 ~]# lsof -u oracle
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
nmz 3211 oracle cwd DIR 8,3 4096 10813466 /home/oracle
nmz 3211 oracle rtd DIR 8,3 4096 2 /
nmz 3211 oracle txt REG 8,3 673908 19398913 /opt/rac/oracle/11.2.0/rac/ccr/bin/nmz
nmz 3211 oracle mem REG 8,3 125736 2820762 /lib/ld-2.5.so
nmz 3211 oracle mem REG 8,3 1606808 2818065 /lib/libc-2.5.so
nmz 3211 oracle 3uW REG 8,3 0 19398727 /opt/rac/oracle/11.2.0/rac/ccr/hosts/rac1/log/sched.lock
nmz 3211 oracle 4w REG 8,3 853 19398726 /opt/rac/oracle/11.2.0/rac/ccr/hosts/rac1/log/sched.log
nmz 3211 oracle 5r REG 8,3 16896 20906832 /opt/rac/oracle/11.2.0/rac/ccr/mesg/nmzus.msb
注意:^符号,它执行取反操作 lsof -u ^oracle 表示除oracle 之外的用户打开的文件
5 查看某个程序打开的所有文件
-c选项限定只列出以apache开头的进程打开的文件:
root@rac1 shell]# lsof -c mysql
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 24319 mysql cwd DIR 8,3 4096 19824642 /opt/mysql/data
mysqld 24319 mysql rtd DIR 8,3 4096 2 /
mysqld 24319 mysql txt REG 8,3 45648978 23429121 /usr/sbin/mysqld
mysqld 24319 mysql mem REG 8,3 139416 21201203 /lib64/ld-2.5.so
mysqld 24319 mysql mem REG 8,3 1713160 21201204 /lib64/libc-2.5.so
mysqld 24319 mysql mem REG 8,3 23360 21201206 /lib64/libdl-2.5.so
6 查看某个用户与某个程序打开的文件
lsof -u username -c 进程名 是或的关系,表示所有由某个用户或某个进程打开的文件
lsof -a -u username -c 进程名 是与的关系
7 查看所有由某个PID对应的进程打开的文件
使用 -p 参数来过滤输出
[root@rac1 ~]# lsof -p 1
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root cwd DIR 8,3 4096 2 /
init 1 root rtd DIR 8,3 4096 2 /
init 1 root txt REG 8,3 43496 17727785 /sbin/init
init 1 root mem REG 8,3 139416 21201203 /lib64/ld-2.5.so
init 1 root mem REG 8,3 1713160 21201204 /lib64/libc-2.5.so
init 1 root mem REG 8,3 23360 21201206 /lib64/libdl-2.5.so
init 1 root mem REG 8,3 95464 21201216 /lib64/libselinux.so.1
init 1 root mem REG 8,3 247528 21201215 /lib64/libsepol.so.1
init 1 root 10u FIFO 0,17 1477 /dev/initctl
8 查看网络连接
-i 参数列出所有打开了网络套接字(TCP和UDP)的进程
a 查看tcp 连接
b 查看udp 连接
c 找到使用某个端口的进程
# lsof -i :3306
:3306和-i选项组合可以让lsof列出占用TCP或UDP的25端口的进程。
d 找到使用某个udp端口号的进程
# lsof -i udp:53
e 可以找到使用某个tcp端口的进程:
# lsof -i tcp:80
f 找到某个用户的所有网络连接
# lsof -a -u mysql -i
[root@rac1 ~]# lsof -a -u mysql -i
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 24319 mysql 11u IPv6 48586515 TCP rac1:mysql->rac1:39045 (ESTABLISHED)
mysqld 24319 mysql 14u IPv6 44743908 TCP *:mysql (LISTEN)
9 列出所有NFS(网络文件系统)文件
# lsof -N
这个参数很好记,-N就对应NFS。
10 列出所有对应某个组id的进程
# lsof -g 1234
进程组用来来逻辑上对进程进行分组,这个例子查找所有PGID为1234的进程打开的文件。
11 列出所有与某个描述符关联的文件
# lsof -d 2 会列出所有以描述符2打开的文件。
可以为描述符指定一个范围:
# lsof -d 0-2 会列出所有描述符为0,1,2的文件。
-d选项还支持其它很多特殊值,下面的命令列出所有内存映射文件:
# lsof -d mem
txt则列出所有加载在内存中并正在执行的进程:
# lsof -d txt
12 输出使用某些资源的进程pid
# lsof -t -i
-t选项输出进程的PID,你可以将它和-i选项组合输出使用某个端口的进程的PID,下面的命令将会杀掉所有使用网络的进程:
# kill -9 `lsof -t -i`
13 循环列出文件
# lsof -r 1
-r选项让lsof可以循环列出文件直到被中断,参数1的意思是每秒钟重复打印一次,这个选项最好同某个范围比较小的查询组合使用,比如用来监测网络活动:
# lsof -r 1 -u john -i -a
- lsof命令简介
lsof命令简介: lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件 ...
- Linux系统下强大的lsof命令使用宝典
lsof命令简介: lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件 ...
- lsof命令总结
1.lsof 简介 lsof 是 linux 下的一个非常实用的系统级的监控.诊断工具.它的意思是 List Open Files,很容易你就记住了它是 “ls + of”的组合~它可以用来列出被各种 ...
- linux lsof命令详解
linux lsof命令详解 简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访 ...
- linux 系统监控、诊断工具之 lsof 用法简介
1.lsof 简介 lsof 是 Linux 下的一个非常实用的系统级的监控.诊断工具. 它的意思是 List Open Files,很容易你就记住了它是 "ls + of"的组合 ...
- lsof命令详解(转)
lsof命令详解(转) 上一篇 / 下一篇 2011-06-09 21:56:41 / 个人分类:Linux 查看( 351 ) / 评论( 0 ) / 评分( 0 / 0 ) 在Linux中,ls ...
- 牛逼的lsof命令!!!
linux lsof命令详解 简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访 ...
- [转贴]linux lsof命令详解
linux lsof命令详解 https://www.cnblogs.com/sparkbj/p/7161669.html 简介 lsof(list open files)是一个列出当前系统打开文件的 ...
- Linux 利用lsof命令恢复删除的文件
lsof命令 lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP.UDP).找回/恢复删除的文件.是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需 ...
随机推荐
- Linux top命令简解
简介: top 命令是最流行的性能监视工具之一,它是一个优秀的交互式工具,用于监视性能.它提供系统整体性能,但报告进程信息才是 top 命令的长处. top 界面分为两个部份,光标上面部份显示关于系统 ...
- iOS开发者账号证书配置及相关工作
申请到开发者账号,肯定要先配置一下才可以使用,这主要是iOS证书及配置文件: 以下这篇文章写得比较全面,故不再累赘,需要的同学可以看一下: iOS开发证书与配置文件的使用
- spring MVC +freemarker + easyui 实现sql查询和执行小工具总结
项目中,有时候线下不能方便的连接项目中的数据源时刻,大部分的问题定位和处理都会存在难度,有时候,一个小工具就能实时的查询和执行当前对应的数据源的库.下面,就本人在项目中实际开发使用的小工具,实时的介绍 ...
- HDU 2111 Saving HDU【贪心】
解题思路:排序后贪心,和fatmouse's trade 类似 Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: ...
- 0-NULL-nullptr
NULL In C A null-pointer constant is an integral constant expression that evaluates to zero (like 0 ...
- Grand Central Dispatch-thread pool pattern
Grand Central Dispatch (GCD) is a technology developed by Apple Inc. to optimize application support ...
- day09-3 数据类型总结,深浅拷贝
目录 数据类型总结,深浅拷贝 存一个值还是多个值 有序 or 无序 可变 or 不可变 浅拷贝和深拷贝的区别(只针对可变类型) 1.拷贝: 3.深拷贝 总结: 数据类型总结,深浅拷贝 存一个值还是多个 ...
- js单体内置对象
js单体内置对象:js的内置对象,是ECMAScritp提供的.不依赖于宿主环境的对象,我的理解就是在我们开发之前js里面就已经存在的对象.单体内置对象就是是不需要通过new来实例化的,例如我们的st ...
- javascript编程风格(粗略笔记)
1.空格 紧凑型: project.MyClass = function(arg1, arg2){ 松散型: for( i = 0; i < length; i++ ){ 2.代码行长度 最多8 ...
- NOI 2018 屠龙勇士 (拓展中国剩余定理excrt+拓展欧几里得exgcd)
题目大意:略 真是一波三折的一道国赛题,先学了中国剩余定理,勉强看懂了模板然后写的这道题 把取出的宝剑攻击力设为T,可得Ti*x=ai(mod pi),这显然是ax=c(mod b)的形式 这部分用e ...