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.www58058.com/26688

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

相關推薦

  • Linux基礎 文件權限

    概述 從接觸linux第一天開始,Linux一切皆文件的哲學思想就深植于每個linuxer的心中,因此,實現Linux的系統安全必然繞不開文件權限。文件的權限是建立在用戶的基礎上的,脫離了用戶,文件權限也就變得毫無意義了。用戶、組和文件權限一起鑄就了linux的系統安全模型。本文主要從文件權限方面了解Linux的安全模型。 文中主要講解了: 1. 文件權限r…

    Linux干貨 2016-08-05
  • Linux基礎知識(1)

    在開源的世界當中,有許多的開源協議,其中著名的有Apache、BSD和GPL協議,它們支撐了開源世界,使得讓那些開源程序變得豐富多彩,我們知道開源協定的發起人是Stallman,它主張的自由含義為自由學習和更改,自由使用;自由分發和自由創建衍生版。
    而Linux就是在這樣的開源協定下在1991年的10月份起義成功,同時,它也有它的哲學思想:

    2017-09-10
  • 8.5-文本處理工具(作業篇)

     1、統計當前連接本機的每個遠程主機IP的連接數,并按從大到小排序 [root@localhost ~]# netstat -nt Active Internet connections (w/o servers) Proto Recv-Q Send-Q&nb…

    Linux干貨 2016-08-07
  • linux網絡配置

    一、 網絡基本配置:  真不敢想象沒有網絡的一天應該怎樣度過,但是有了網絡就行了?原來剛有了網絡時由于沒有統一的標準,各大硬件廠商各自為政,都在搞網絡,但是都只是同一廠商的設備可以進行通訊,就和不同的國家的人交流使用了不同的語言一樣,難以將所有的網絡連接起來,之后Internet有了統一的標準,大家都遵循它的標準,后來計算機才能進行網絡通訊,同樣將…

    Linux干貨 2016-09-13
  • 位置變量&特殊變量總結

    位置變量 常用的位置變量有 $1, $2, $3 ……,表示命令行傳給腳本的第一個參數,第二個參數,第三個參數。。。 $0 表示腳本的文件名,比如a.sh 位置變量在腳本中的主要作用,是讓腳本通過他們來獲取命令行傳遞給腳本的參數。 變量位置調整 shift [n] 用于調整變量位置 第n+1個位置變量會被重新命名為$1…

    Linux干貨 2016-08-15
  • socket編程原理

    1、問題的引入 1) 普通的I/O操作過程: UNIX系統的I/O命令集,是從Maltics和早期系統中的命令演變出來的,其模式為打開一讀/寫一關閉(open-write-read-close)。在一個用戶進程進行I/O操作時,它首先調用“打開”獲得對指定文件或設備的使用權,并返回稱為文件描述符的整型數,以描述用戶在打開的文件或設備上進行I/O操作的進程。然…

    Linux干貨 2015-04-10
欧美性久久久久