linux误删正在进程中的目录恢复,利用lsof命令 恢复正在使用中的误删的文件

查看进程打开文件命令  lsof      (list   open  files) 查看当前文件系统的工具。在Linux 环境,一切皆文件,用户通过文件不仅可以

访问常规数据,还可以访问网络连接。系统在后台都为应用程序分配了一个文件描述符。

在终端下输入lsof即可显示系统打开的文件,

因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

当系统中的某个文件被意外删除了,只要这个时候系统中有进程正在访问这个文件,

那么可以通过lsof 从/proc目录下恢复文件的内容。

原理是:在Linux系统的/proc 分区下保存着进程的目录和名字,包含fd(文件描述符)和其下的子目录(进程打开文件的链接),

那么如果删除了一个文件,还存在一个 inode的引用: 。

当不小心用了 rm -f  删除文件时,其实只是删除了文件的目录索引节点,对于文件系统不可见,但是对于打开它的进程依然可见。就可以使用I/O重定向的方式来恢复文件

以删除日志文件 /var/log/messages 为例。

7d5a00bed8ead7f8bfc2edcbebc14349.png

具体操作恢复文件过程:

cat    /proc/1288/fd/1   (/proc/进程号/fd/文件描述符)

cat  /proc/1288/fd/1  > /var/log/messages   ##通过重定向的方法恢复被删除的/var/log/messages(也可以使用cp命令拷贝回原路径)

a29679d81a2ed645a33a5f44aaeb800e.png

4e689d429645fa2b1b0b18016b1dec15.png

亲,如果不小心误删了文件,不要着急呀,首先使用 lsof 查看打开该文件的进程,然后再使用 cat  /proc/进程号/fd/文件描述符

查看恢复数据,最后使用I/O重定向的方式来恢复文件。(注意:使用lsof也只能去恢复那些被delete但是仍然是open的文件。)

标签:文件,删除,lsof,误删,fd,进程,proc

来源: https://www.cnblogs.com/liuyakai/p/14299689.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值