Linux下查看进程打开的文件与打开文件的进程

简介:

有许多情况下,我们需要查看一个进程当前打开了哪些文件,反过来我们也希望知道某一个文件正在被哪些进程所读写。在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即可恢复被删除的文件。


本文转自 goldfishe 51CTO博客,原文链接:http://blog.51cto.com/jack88/1907999

相关文章
|
1天前
|
消息中间件 Unix Linux
Linux的学习之路:17、进程间通信(1)
Linux的学习之路:17、进程间通信(1)
12 1
|
1天前
|
存储 安全 Linux
Linux的学习之路:9、冯诺依曼与进程(1)
Linux的学习之路:9、冯诺依曼与进程(1)
12 0
|
5天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
12 0
|
6天前
|
算法 Linux 调度
深入理解Linux内核的进程调度机制
【4月更文挑战第17天】在多任务操作系统中,进程调度是核心功能之一,它决定了处理机资源的分配。本文旨在剖析Linux操作系统内核的进程调度机制,详细讨论其调度策略、调度算法及实现原理,并探讨了其对系统性能的影响。通过分析CFS(完全公平调度器)和实时调度策略,揭示了Linux如何在保证响应速度与公平性之间取得平衡。文章还将评估最新的调度技术趋势,如容器化和云计算环境下的调度优化。
|
7天前
|
Linux Shell 开发工具
Linux文件常用操作
Linux文件常用操作(几乎覆盖所有日常使用)
66 0
|
7天前
|
监控 Linux
linux监控指定进程
请注意,以上步骤提供了一种基本的方式来监控指定进程。根据你的需求,你可以选择使用不同的工具和参数来获取更详细的进程信息。
14 0
|
8天前
|
Linux 内存技术 Perl
【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件
【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件
|
8天前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
101 2
|
11天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
20 3
|
14天前
|
Linux
linux 超过4个G的文件传不上去的解决办法
linux 超过4个G的文件传不上去的解决办法
9 0