Linux误删大文件的一个可能解救办法

描述:某个网友说他在进行md5指纹对比某文件的时候,另外一个同事在另外一个窗口删除了该文件,然后顺嘴跟他说了下,这时候他意识到同事可能是误删除了,于是,他利用了以下办法来进行解救:

操作顺序如下:

1)网友的操作:

[root@C67-X64-A0 ~]# ls -l /test.img 
-rw-r--r-- 1 root root 2147479552 7月  29 15:18 /test.img
[root@C67-X64-A0 ~]# du -sh /test.img 
2.0G/test.img
[root@C67-X64-A0 ~]# md5sum /test.img

2)网友同事的操作:

[root@C67-X64-A0 ~]# rm -rf /test.img 
[root@C67-X64-A0 ~]# ls /test.img
ls: 无法访问/test.img: 没有那个文件或目录
网友同事可能意识到误操作了,立马喊了网友,网友一看妈蛋,这文件我下了老半天的,你现在删除不是捉死么!

3)网友立马在自己的窗口使用 Ctrl+Z,立刻暂停 md5sum

[root@C67-X64-A0 ~]# md5sum /test.img 
^Z
[1]+  Stopped                 md5sum /test.img

这里利用的一个原理就是:如果有其他程序正在使用这个文件的话,Linux 不会真正删除这个文件(即使执行了 rm 命令)。我们在删除命令 rm 执行完之前暂停 md5sum,这样 test.img 就一直会被 md5um 占用而不会真正被 rm 删除。

4)开始恢复之路

[root@C67-X64-A0 ~]# jobs -l
[1]+  4254 停止                  md5sum /test.img

使用 jobs 可以看到被暂停的 md5sum 的进程号4254,然后查看这个进程打开了哪些文件:

[root@C67-X64-A0 ~]# ls -l /proc/4254/fd
总用量 0
lrwx------ 1 root root 64 7月  29 15:31 0 -> /dev/pts/0
lrwx------ 1 root root 64 7月  29 15:31 1 -> /dev/pts/0
lrwx------ 1 root root 64 7月  29 15:31 2 -> /dev/pts/0
lr-x------ 1 root root 64 7月  29 15:31 3 -> /test.img (deleted)
[root@C67-X64-A0 ~]# cp /proc/4254/fd/3 /test.img
[root@C67-X64-A0 ~]# ls -l /test.img 
-rw-r--r-- 1 root root 2147479552 7月  29 15:36 /test.img

一次有惊无险的操作,数据得以恢复。







原创文章,作者:Net21-冰冻vs西瓜,如若转载,请注明出处:http://www.178linux.com/26688

(0)
Net21-冰冻vs西瓜Net21-冰冻vs西瓜
上一篇 2016-08-02 10:56
下一篇 2016-08-02 10:56

相关推荐

  • http服务之二

    httpd http协议: http事务:    请求:request    响应:response 报文语法格式: request报文 <method> <request-URL> <version>     <he…

    Linux干货 2016-10-21
  • 如何查找Ubuntu系统中占用磁盘最大的那些文件夹

    根据马哥的指导,我们需要用df和du两个磁盘管理命令来查看 先用df来了解磁盘大致的空间情况: 然后用du -sh 某个folder来查看哪个文件夹占用多少空间 然后我们可以用du /homewebown | sort -nr | more 可来定位具体是哪个文件夹占用空间过大。

    Linux干货 2016-11-06
  • 马哥教育网络班20期+第3周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who root     pts/0        2016-06-23&nb…

    Linux干货 2016-06-29
  • 操作系统,内核以及硬件之间的关系

    一般我们将计算机系统区分为硬件系统与软件系统构成。 计算机硬件我们可以分成5大组件构成,即: 1)计算器:用于数据计算,如:CPU 2)控制器:控制数据流和指令流,与各个组件之间进行数据交互,并控制协调各个组件之间协同工作,如:主板的南桥,内桥,各个组件自身的独立控制芯片等 3)存储器:用户数据的存放,如:一级/二级等内存芯片;flash芯片 4)输入设备:…

    Linux干货 2016-10-26
  • 马哥教育网络22班第二周课程练习

    1,Linux上的文件管理类命令有哪些?其常用的使用方法机器相关实例演示 文件管理类命令:   cp 文件复制         常用选项:             -i:交互式           &…

    Linux干货 2016-08-30
  • lnmap实战之负载均衡架构(无高可用)

    lnmap实战之负载均衡架构(无高可用) 架构图如下: 此次实战软件,全部yum安装 1.准备好机器,同步好时间 192.168.42.150 node1 [负载均衡器]192.168.42.152 node3 [web2]192.168.42.153 node4 [web1]192.168.42.151 node2 [memcached session存储…

    Linux干货 2017-06-22