對(duì)于linux下誤刪的文件,我們是否真的無(wú)法通過(guò)軟件進(jìn)行恢復(fù)呢?
誤刪文件還原可以分為兩種情況
一種是刪除以后在進(jìn)程存在刪除信息
一種是刪除以后進(jìn)程都找不到,只有借助于工具還原。
今天只分析文件被刪除后,相關(guān)進(jìn)程還存在的情況
這種一般是有活動(dòng)的進(jìn)程存在持續(xù)標(biāo)準(zhǔn)輸入或輸出,到時(shí)文件被刪除后,進(jìn)程PID依舊存在。這也是有些服務(wù)器刪除一些文件但是磁盤(pán)不釋放的原因
案例演示
創(chuàng)建一個(gè)文件
>vimrumenz.txt 123 //保存退出 >catrumenz.txt 123
用tail -f打開(kāi)rumenz.txt文件
目的是讓rumenz.txt被刪除后,進(jìn)程依然存在
>tail-frumenz.txt
新開(kāi)一個(gè)終端刪除rumenz.txt
>rm-frumenz.txt
找到占用rumenz.txt的進(jìn)程
lsof查看刪除的文件進(jìn)程是否還存在。
如沒(méi)有安裝請(qǐng)自行yum install lsof或者apt-get install lsof
>lsof|grepdelete|greprumenz tail10222root3rREG253,1470911074/root/test/rumenz.txt(deleted)
進(jìn)程ID是10222,從上面可以看出,當(dāng)前文件狀態(tài)為已刪除(deleted)
恢復(fù)文件
/proc/10222/fd:進(jìn)程操作的文件描述符目錄
>cd/proc/10222/fd >ls-al dr-x------2rootroot0May1121:41. dr-xr-xr-x9rootroot0May1121:41.. lrwx------1rootroot64May1121:410->/dev/pts/1 lrwx------1rootroot64May1121:411->/dev/pts/1 lrwx------1rootroot64May1121:412->/dev/pts/1 lr-x------1rootroot64May1121:413->/root/test/rumenz.txt(deleted) lr-x------1rootroot64May1121:414->anon_inode:inotify
開(kāi)始恢復(fù)文件
>cp3/root/test/rumenz.txt >cat/root/test/rumenz.txt 123
能恢復(fù)的根本原因
當(dāng)程序運(yùn)行時(shí),操作系統(tǒng)會(huì)專門(mén)開(kāi)辟一塊內(nèi)存區(qū)域,提供給當(dāng)前進(jìn)程使用,對(duì)于依賴的文件,操作系統(tǒng)會(huì)發(fā)放一個(gè)文件描述符,以便讀寫(xiě)文件,當(dāng)我們執(zhí)行rm -f刪除文件時(shí),其實(shí)只是刪除了文件的目錄索引節(jié)點(diǎn),對(duì)于文件系統(tǒng)不可見(jiàn),但是對(duì)于打開(kāi)它的進(jìn)程依然可見(jiàn),即仍然可以使用先前發(fā)放的文件描述符讀寫(xiě)文件,正是利用這樣的原理,所以我們可以使用I/O重定向的方式來(lái)恢復(fù)文件。
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
87文章
11509瀏覽量
213715 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
9791瀏覽量
87925 -
軟件
+關(guān)注
關(guān)注
69文章
5150瀏覽量
89205 -
磁盤(pán)
+關(guān)注
關(guān)注
1文章
390瀏覽量
25825 -
文件
+關(guān)注
關(guān)注
1文章
579瀏覽量
25358
原文標(biāo)題:Linux手誤rm可能不需要跑路
文章出處:【微信號(hào):良許Linux,微信公眾號(hào):良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
怎么恢復(fù)U盤(pán)誤刪的文檔word,excel文件
Linux文件系統(tǒng)被誤刪檔怎么恢復(fù)?
誤刪除文件恢復(fù)工具FinalData_3.0.8.1201_XiaZaiBa
多線程的并行實(shí)例恢復(fù)方法

蘋(píng)果手機(jī)照片誤刪該如何恢復(fù)
安卓手機(jī)圖片誤刪恢復(fù)方法

數(shù)據(jù)恢復(fù)方法有哪些
Linux中誤刪文件的恢復(fù)操作

【服務(wù)器數(shù)據(jù)恢復(fù)】LINUX誤刪除、誤格式化怎么恢復(fù)數(shù)據(jù)?
服務(wù)器數(shù)據(jù)恢復(fù)-LINUX下誤刪除/格式化的數(shù)據(jù)恢復(fù)方案
小米電腦數(shù)據(jù)恢復(fù)的常用方法、工具和步驟
Oracle數(shù)據(jù)恢復(fù)—Oracle刪除數(shù)據(jù)不用怕!這些數(shù)據(jù)恢復(fù)方法了解一下
服務(wù)器數(shù)據(jù)恢復(fù)—EXT3文件系統(tǒng)下誤刪除數(shù)據(jù)的恢復(fù)案例

使用lsof實(shí)現(xiàn)對(duì)linux文件的誤刪除恢復(fù)練習(xí)

評(píng)論