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

相关推荐

  • 第一天课程内容

    一 连接VNC 主机名:172.20.0.100 二 课堂资源下载 ftp://172.16.0.1 三 博客作业     优秀示例 www.yulongjun.com     博客地址 www.178linux.com     作业要求 1.每周一篇或更多,整理当周内容。 2.老师周五发链接地址,提交博客链接。 四 职业发展线路 运维 > Pytho…

    Linux干货 2018-03-26
  • class-6 用户组管理(二) 权限管理

                      一、用户组管理  1、设置修改用户密码密码      设置密码     passwd [OPT…

    Linux干货 2016-08-05
  • 22期第十周课堂练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)     2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区;       (1) 为硬盘新建两个主分区;并为其安装grub;       (2) 为硬盘的第一个主分区提供内核和ramdi…

    Linux干货 2016-10-24
  • 在马帮的宣言

    好好学习,在这半年时间让自己的道路上再迈出一大步

    Linux干货 2016-10-28
  • N25 第五周博客

      1、显示当前系统上root、fedora或user1用户的默认shell;      ]# egrep "^root\b|^user1\b|^fedora\b" /etc/passwd | cut -d: -f1,7…

    Linux干货 2017-01-04
  • 我的学习宣言,不忘初心

    Dear 马哥: 我相信选择马哥教育是正确的。 我将用洪荒之力的努力来成为一名合格的马帮门徒! 一定不学中国足球。 敬礼 自学生 朱宏

    Linux干货 2016-10-30