- N +

linux刪除文件后怎么恢復 centos刪除的文件能恢復嗎

各位老鐵們,大家好,今天由我來為大家分享linux刪除文件后怎么恢復,以及centos刪除的文件能恢復嗎的相關問題知識,希望對大家有所幫助。如果可以幫助到大家,還望關注收藏下本站,您的支持是我們最大的動力,謝謝大家了哈,下面我們開始吧!

linux磁盤誤刪除文件怎么恢復

答解決方法如下

1、執行命令“cd/home”進入服務器根目錄home;

?

2、執行命令“touchdemo.txt”創建一個演示文稿;

?

3、執行命令“rm-rfdemo.txt”刪除該文件;

?

4、執行命令“debugfs”運用系統自帶恢復工具debugfs來修復;

?

5、額外開一個xshell,執行命令“df/home/”打開剛剛被刪除文件所在分區;

?

6、執行命令“open/dev/mapper/vg_root-lv_root”查看目錄分區;

?

7、執行命令“ls-d/home”顯示被刪除文件所在目錄;

?

8、執行命令“logdump-i”查找文件所在區塊號;

?

9、記住block后面的數值并執行命令“quit”退出debugfs;

?

10、執行命令“ddif=/dev/mapper/vg_root-lv_rootof=/home/demo.txtbs=640count=1skip=1089”恢復文件操作;

?

11、bs與offset值一致,skip與block值一致,執行命令“ls”可以看到文件demo.txt被刪除后又重新找回來了,恢復成功。

linux誤刪文件查看、恢復

恢復步驟

一、用運SecureCRT遠程對操作系統上,查看一下當前系統版本號,及文件系統格式

二、為方便本次實驗,我們新創建一文件。

三、執行刪除操作

四、運用,系統自還工具debugfs來修復

五、打開,剛剛被刪除文件所在的分區

六、用ls加-d參數顯示剛剛刪除文件所在的目錄

七、顯示有<>尖括號的就是我們要找的文件Inode號執行logdump–I<393289>

八,執行完命令后,顯示了一屏信息,我們需要的是下面這一行,并且要記住,后面的值

九,退出debugfs

十,執行如下命令

十一,以上結果表示恢復成功我們看下/tmp目錄下到底有沒有。

十二,tmp目錄下有我們顯示一下。

如何恢復LINUX中意外刪除的文件

當進程打開某個文件時,只要該進程保持打開該文件,即使將其刪除,它依然存在于磁盤中。這意味著,進程并不知道文件已經被刪除,它仍然可以向打開該文件時提供給它的文件描述符進行讀取和寫入。除了該進程之外,這個文件是不可見的,因為已經刪除了其相應的目錄索引節點。在這種情況可以通過lsof來恢復這些文件。

在/proc目錄下,其中包含了反映內核和進程樹的各種文件。/proc目錄掛載的是在內存中所映射的一塊區域,所以這些文件和目錄并不存在于磁盤中,因此當我們對這些文件進行讀取和寫入時,實際上是在從內存中獲取相關信息。大多數與lsof相關的信息都存儲于以進程的PID命名的目錄中,即/proc/12中包含的是PID為12的進程的信息。每個進程目錄中存在著各種文件,它們可以使應用程序簡單地了解進程的內存空間、文件描述符列表、指向磁盤上的文件的符號鏈接和其他系統信息。lsof程序使用該信息和其他關于內核內部狀態的信息來產生其輸出。所以lsof可以顯示進程的文件描述符和相關的文件名等信息。也就是我們通過訪問進程的文件描述符可以找到該文件的相關信息。

下面舉例說明

我/tmp目錄下創建了腳本文件,時刻在后臺運行,但是tmp目下會被系統定時刪除的,但犯懶不想重寫腳本,想把原來的找回,具體步驟如下。

1.查看已經被刪除的文件diamon.sh,已經不存在了

[root@centos5~]#ll/tmp/

total28

-rw-r--r--1rootroot402Sep2614:19load_tab.sh

srwxrwxrwx1mysqlmysql0Sep1615:20mysql.sock

drwx------2rootroot4096Oct1215:44ssh-hiPBw10887

drwx------2rootroot4096Oct1016:12ssh-lUXbjf6337

2.使用lsof來查看當前哪個進程正在打開文件”/tmp/diamon.sh“

[root@centos5~]#lsof|grepdiamon

sh8455root255rREG253,0173764298/tmp/diamon.sh(deleted)

[root@centos5~]#

從上面的輸出可以看到,進程8455正在以只讀的方式打開這個文件,打開的文件描述符為255,同時文件/tmp/diamon.sh被標記刪除。然后我查看文件"/proc/8455/fd/255"

[root@centos5~]#more/proc/8455/fd/255

#variables

dir=/tmp

while(true)

do

v_num=`ps-ef|grepload_tab|grep-vgrep|wc-l`

if[$v_num-lt4];then

sh/tmp/load_tab.sh>/dev/null2>&1&

fi

done

[root@centos5~]#

3.已經找到已經被刪除的文件了嗎然后利用I/O重定向將其恢復到指定文件中,如下

[root@centos5~]#cat/proc/8455/fd/255>/tmp/diamon.sh

檢查文件已經被恢復了

[root@centos5~]#ll/tmp

total36

-rw-r--r--1rootroot173Oct1216:53diamon.sh

-rw-r--r--1rootroot402Sep2614:19load_test10.sh

srwxrwxrwx1mysqlmysql0Sep1615:20mysql.sock

drwx------2rootroot4096Oct1215:44ssh-hiPBw10887

drwx------2rootroot4096Oct1016:12ssh-lUXbjf6337

[root@centos5~]#

查看恢復的文件內容是否正常

[root@centos5~]#

[root@centos5~]#more/tmp/diamon.sh

#variables

dir=/tmp

while(true)

do

v_num=`ps-ef|grepload_test|grep-vgrep|wc-l`

if[$v_num-lt4];then

sh/tmp/load_test10.sh>/dev/null2>&1&

fi

done

[root@centos5~]#

至此linux恢復刪除文件成功結束

總結:

A.在文件被刪除時,不要慌,盡可能保存現場

B.對于某些數據庫文件被誤刪除很有效

linux平臺下數據文件被誤刪后,如何及時得知并進行恢復

我這里提供一個思路,具體實現方法樓主可以自己實現。

一.怎么及時得知文件被刪

在Linux下面一個文件監控工具inotify-tools,通過命令安裝即可

#yuminstallinotify-tools

inotify-tools它提供兩種工具,一是inotifywait,它是用來監控文件或目錄的變化,二是inotifywatch,它是用來統計文件系統訪問的次數。

在我們今天討論的議題里面我們使用inotifywait,只需要監控inotifywait的move和delete事件,假如發生了這兩個事件代表文件被刪了,然后發送短信或者郵件告警,這樣就可以得知文件被刪除了。

二.怎么進行及時的恢復,有好幾種辦法。

a).如果是文件被刪除,但是它還被其他進程打開著,可以這樣嘗試。

#lsof|grep"/path/to/file"

注意第二列的數字是5559,第四列的數字是22。恢復該文件的命令如下:

#cp/proc/5559/fd/22restored.file

b).如果lsof找不到你的文件,那么把分區設為只讀或者卸載分區

#mount-oremount,ro/dev/partition

或者

#umount/dev/partition

這里的/dev/partition是指你的數據盤,例如/dev/sda2或者sdb1等等,這時候你可以用如下命令把整個數據盤備份出來。

#ddbs=4Mif=/dev/partitionof=partition.backup

這個時候可以用extundelete,它可以針對某一個分區進行全量的恢復。如果extundelete都不能恢復你的文件,那么你也可以嘗試用debugfs,每一個工具都可以展開很大的篇幅來討論,樓主可以自己去實踐或者關注我的文章,有機會我寫一個詳細一點的。

linux下rm之后的文件還能恢復嗎

理論上rm刪除的文件是還能恢復的。刪掉文件其實只是將指向數據塊的索引點(informationnodes)釋放,只要不被覆蓋,數據其實還在硬盤上,關鍵在于找出索引點,然后將其所指數據塊內的數據抓出,再保存到另外的分區。在用rm誤刪除文件后,我們要做的第一件事就是保證不再向誤刪文件的分區寫數據。通常我們可以有以下幾種選擇:

1、借助工具。

2、自己寫程序。你需要會編程并了解對應的文件系統。

3、如果數據很有用,也許可以找專業公司搶救。工具1、TheSleuthKit2、Foremost3、一個全能的工具,Finaldata,可以恢復unix/linux/dos下誤刪的文件。對于unix,支持這些產品,Solaris、AIX和HP-UX。對于linux,支持EXT2的文件系統。對于dos,支持FAT12/16/32,NTFS4/5/5.1的文件系統。

4、如果文件系統是ext2(對ext3無效):ext3的刪除機制是直接把inodedata刪除了,所以造成ext3無法反刪除(ext3設計為無法恢復被刪除的文件)。unrmext2eddebugfs(undellsdel)recoverMidnightCommander(mc)e2undeltct

5、如果文件系統是FAT32或者NTFS:EasyRecoveryFinaldata

6、freebsd如果使用了rm,可以試一下undelete這個命令.

7、當進程打開了某個文件時,只要該進程保持打開該文件,lsof可以用來恢復刪除文件。

好了,文章到這里就結束啦,如果本次分享的linux刪除文件后怎么恢復和centos刪除的文件能恢復嗎問題對您有所幫助,還望關注下本站哦!

返回列表
上一篇:
下一篇: