各位老鐵們,大家好,今天由我來為大家分享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刪除的文件能恢復嗎問題對您有所幫助,還望關注下本站哦!