有许多情况下,我们需要查看一个进程当前打开了哪些文件,反过来我们也希望知道某一个文件正在被哪些进程所读写。在Linux下有许多有用的工具可以帮我们完成这两个工作,下面介绍这两个工具:lsof与fuser。
fuser find files or sockets' user
格式:fuser [选项] fname
-k 如果找到打开文件的进程,则发送SIGKILL杀死此进程,通过-i选项,可以为用户提供交互选择
-signal 用户可以指定使用何种信号去kill进程,如果-k参数指定,则忽略此参数
-m 如果指定一个文件,则所有访问那个文件所在文件系统的进程都会被列出来
-n type 指定不同的文件类型,默认类型为file,此外还支持tcp和udp类型,此时可以简写作port/tcp
-u 显示进程属主
-v 显示详细进程与打开文件信息
-4/-6 只搜索IPv4/IPv6套接字
例如,我们想查看端口TCP端口9000由哪个进程打开 fuser -v -u 9000/tcp
查看哪些进程在访问/home挂载分区 fuser -mv /home
lsof list open file
格式:lsof [选项] [names]
单独执行lsof将输出系统中所有打开的文件,我们可以grep过滤出我们关心的内容,不过lsof提供了相应的参数帮助我们精确查找
lsof name 将输出所有使用文件name的进程
-p pid 列出进程pid所打开的所有文件
-d FD_pattern 列出所有已经打开的FD值为FD_pattern的文件FD的值有整数,TXT,MEM等等
-a lsof后可以加多个匹配条件,默认为or连接,此参数将多个条件变成and关系
-i [46] [proto] [@hostname|ip][:service|port] 用来选择占用某个端口的进程
+d/+D dir 非递归或递归的显示打开dir下文件的进程
-c string 显示进程的command中包含string的进程所打开的文件
-u username 显示属于user的进程所打开的文件
-g gid
以上这些参数已经足够用了,上面这两个工具都是读取/proc文件系统中的数据进行工作的。网上有提到借助于lsof的查找功能,可以对一个删除的文件进行恢复,前提是占用这个文件的进程当前还没有关闭。通过被删除的文件,找到对应的进程及在进程中的fd-num,然后通过cat /proc/process-num/fd/fd-num即可恢复被删除的文件。
分享到:
相关推荐
2.9 怎样从/向数据文件读/写结构? . . . . . . . . . . . . . . . . . . . 9 2.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外 部数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域 的...
在WinForm/C#中打开一个文件,主要是用到进程的知识。 下面是一些实例,可以模仿着去实现。 1. 打开文件 2.打开浏览器 3. 打开指定URL 4. 打开文件夹 5.打印文件
C#WinForm_打开一个进程、文件等..pdf
查看哪个文件正在被哪个exe打开,占用中
如何知道进程打开了哪些文件句柄handle
如何解决打开多个excel文件建立多个进程的问题.pdf
VS编译时无法打开 源 文件 "pthread.h"。是因为微软VS没有pthread.h. 项目--属性--配置属性--c/c++常规--附加包含目录添加pthread.h所在的文件夹。
API枚举进程文件路径.rar
1.普通的件,2.录 3.络件系统的件,4.字符设备件 5.(函数)共享 8.底层的socket字流,络socket,unix域名socket 9.在linux
资源可以在一个winform页面同时加载多个exe到页面,并且可以传参数。
修改linux进程可打开的文件数的限制open files linux中一切都是文件 默认linux一个进程可打开1024个文件 大并发需要达到5万个文件描述符FD,你必须修改该参数值才行
有些时候,需要打开多个excel进程,来进行核对数据 1.使用快捷键组合“Win+R”调出运行命令框,键入 regedit.exe,回车,打开注册表编辑器。 2.修改HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command值。 展开...
ubuntu执行.sh文件,1 .sh文件是Ubuntu下可执行文件,首先需要确定它的权限是否是可执行的,2、 用vim打开sh文件,3、查看文件格式:4. 修改文件格式: 5. 保存退出: 6. 执行:./filename 注意:不可以用sh ...
如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看: 1.lsof -n |awk ‘{print $2}’|sort|...
列出打开了某个文件句柄的进程,找出谁在使用某个文件.zip
主要给大家介绍了关于在linux中利用lsof命令如何查看文件打开情况的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
同时意天Windows进程管理助手还能查看系统当前所打开的所有网络端口,通过该功能您可以了解到当前有哪些软件正在利用网络进行通信,是否有可疑软件正在向外部发送数据,该功能与删除进程功能结合在一起足以您自己...
查询进程打开的文件,fuser lsof