www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 作為一名運(yùn)維人員,保證數(shù)據(jù)的安全是根本職責(zé),所以在維護(hù)系統(tǒng)的時(shí)候,要慎之又慎,但是有時(shí)難免會(huì)出現(xiàn)數(shù)據(jù)被誤刪除的情況,在這個(gè)時(shí)候改如何快速、有效地恢復(fù)數(shù)據(jù)呢?本文

 作為一名運(yùn)維人員,保證數(shù)據(jù)的安全是根本職責(zé),所以在維護(hù)系統(tǒng)的時(shí)候,要慎之又慎,但是有時(shí)難免會(huì)出現(xiàn)數(shù)據(jù)被誤刪除的情況,在這個(gè)時(shí)候改如何快速、有效地恢復(fù)數(shù)據(jù)呢?本文我們就來(lái)介紹一下Linux系統(tǒng)下常用的幾個(gè)數(shù)據(jù)恢復(fù)工具。

一、如何使用“rm -rf”命令

在Linux系統(tǒng)下,通過(guò)命令“rm -rf”可以將任何數(shù)據(jù)直接從硬盤(pán)刪除,并且沒(méi)有任何提示,同時(shí)Linux下也沒(méi)有與Windows下回收站類(lèi)似的功能,也就意味著,數(shù)據(jù)在刪除后通過(guò)常規(guī)的手段是無(wú)法恢復(fù)的,因此使用這個(gè)命令要非常慎重。在使用rm命令的時(shí)候,比較穩(wěn)妥的方法是把命令參數(shù)放到后面,這樣有一個(gè)提醒的作用。其實(shí)還有一個(gè)方法,那就是將要?jiǎng)h除的東西通過(guò)mv命令移動(dòng)到系統(tǒng)下的/tmp目錄下,然后寫(xiě)個(gè)腳本定期執(zhí)行清除操作,這樣做可以在一定程度上降低誤刪除數(shù)據(jù)的危險(xiǎn)性。

其實(shí)保證數(shù)據(jù)安全最好的方法是做好備份,雖然備份不是萬(wàn)能的,但是沒(méi)有備份是萬(wàn)萬(wàn)不行的。任何數(shù)據(jù)恢復(fù)工具都有一定局限性,都不能保證完整地恢復(fù)出所有數(shù)據(jù),因此,把備份作為核心,把數(shù)據(jù)恢復(fù)工具作為輔助是運(yùn)維人員必須堅(jiān)持的一個(gè)準(zhǔn)則。

二、extundelete與ext3grep的異同

在Linux下,基于開(kāi)源的數(shù)據(jù)恢復(fù)工具有很多,常見(jiàn)的有debugfs、R-Linux、ext3grep、extundelete等,比較常用的有ext3grep和extundelete,這兩個(gè)工具的恢復(fù)原理基本一樣,只是extundelete功能更加強(qiáng)大,本文重點(diǎn)介紹extundelete的使用。

三、extundelete的恢復(fù)原理

在介紹使用extundelete進(jìn)行恢復(fù)數(shù)據(jù)之前,簡(jiǎn)單介紹下關(guān)于inode的知識(shí)。在Linux下可以通過(guò)“ls –id”命令來(lái)查看某個(gè)文件或者目錄的inode值,例如查看根目錄的inode值,可以輸入:

[root@cloud1 ~]# ls -id /

2 /

由此可知,根目錄的inode值為2。

在利用extundelete恢復(fù)文件時(shí)并不依賴(lài)特定文件格式,首先extundelete會(huì)通過(guò)文件系統(tǒng)的inode信息(根目錄的inode一般為2)來(lái)獲得當(dāng)前文件系統(tǒng)下所有文件的信息,包括存在的和已經(jīng)刪除的文件,這些信息包括文件名和inode。然后利用inode信息結(jié)合日志去查詢(xún)?cè)搃node所在的block位置,包括直接塊,間接塊等信息。最后利用dd命令將這些信息備份出來(lái),從而恢復(fù)數(shù)據(jù)文件。

四、 安裝extundelete

extundelete的官方網(wǎng)站是http://extundelete.sourceforge.net/ ,其目前的穩(wěn)定版本是extundelete-0.2.4。,在安裝extundelete之前需要安裝e2fsprogs和e2fsprogs-libs兩個(gè)依賴(lài)包。

e2fsprogs和e2fsprogs-libs安裝非常簡(jiǎn)單,這里不做介紹。下面是extundelete的編譯安裝過(guò)程:

[root@cloud1 app]#tar jxvf extundelete-0.2.4.tar.bz2

[root@cloud1 app]#cd extundelete-0.2.4

[root@cloud1 extundelete-0.2.4]#./configure

[root@cloud1 extundelete-0.2.4]#make

[root@cloud1 extundelete-0.2.4]#make install

成功安裝extundelete后,會(huì)在系統(tǒng)中生成一個(gè)extundelete可執(zhí)行文件。extundelete的使用非常簡(jiǎn)單,讀者可以通過(guò)“extundelete --help”獲得此軟件的使用方法。

五、extundelete用法詳解

extundelete安裝完成后,就可以執(zhí)行數(shù)據(jù)恢復(fù)操作了,本節(jié)詳細(xì)介紹下extundelete每個(gè)參數(shù)的含義。extundelete用法如下:

extundelete --help

命令格式:

1

extundelete [options] [action] device-file

其中參數(shù)(options)有:

--version, -[vV],顯示軟件版本號(hào)。

--help,顯示軟件幫助信息。

--superblock,顯示超級(jí)塊信息。

--journal,顯示日志信息。

--after dtime,時(shí)間參數(shù),表示在某段時(shí)間之后被刪的文件或目錄。

--before dtime,時(shí)間參數(shù),表示在某段時(shí)間之前被刪的文件或目錄。

動(dòng)作(action)有:

--inode ino,顯示節(jié)點(diǎn)“ino”的信息。

--block blk,顯示數(shù)據(jù)塊“blk”的信息。

--restore-inode ino[,ino,...],恢復(fù)命令參數(shù),表示恢復(fù)節(jié)點(diǎn)“ino”的文件,恢復(fù)的文件會(huì)自動(dòng)放在當(dāng)前目錄下的RESTORED_FILES文件夾中,使用節(jié)點(diǎn)編號(hào)作為擴(kuò)展名。

--restore-file 'path',恢復(fù)命令參數(shù),表示將恢復(fù)指定路徑的文件,并把恢復(fù)的文件放在當(dāng)前目錄下的RECOVERED_FILES目錄中。

--restore-files 'path',恢復(fù)命令參數(shù),表示將恢復(fù)在路徑中已列出的所有文件。

--restore-all,恢復(fù)命令參數(shù),表示將嘗試恢復(fù)所有目錄和文件。

-j journal,表示從已經(jīng)命名的文件中讀取擴(kuò)展日志。

-b blocknumber,表示使用之前備份的超級(jí)塊來(lái)打開(kāi)文件系統(tǒng),一般用于查看現(xiàn)有超級(jí)塊是不是當(dāng)前所要的文件。

-B blocksize,表示使用數(shù)據(jù)塊大小來(lái)打開(kāi)文件系統(tǒng),一般用于查看已經(jīng)知道大小的文件。

六、實(shí)戰(zhàn):extundelete恢復(fù)數(shù)據(jù)的過(guò)程

在數(shù)據(jù)被誤刪除后,第一時(shí)間要做的是卸載被刪除數(shù)據(jù)所在的磁盤(pán)或磁盤(pán)分區(qū),如果是系統(tǒng)根分區(qū)的數(shù)據(jù)遭到誤刪除,就需要將系統(tǒng)進(jìn)入單用戶(hù),并且將根分區(qū)以只讀模式掛載。這樣做的原因很簡(jiǎn)單,因?yàn)閷⑽募h除后,僅僅是將文件的inode結(jié)點(diǎn)中的扇區(qū)指針清零,實(shí)際文件還存儲(chǔ)在磁盤(pán)上,如果磁盤(pán)以讀寫(xiě)模式掛載,這些已刪除的文件的數(shù)據(jù)塊就可能被操作系統(tǒng)重新分配出去,在這些數(shù)據(jù)塊被新的數(shù)據(jù)覆蓋后,這些數(shù)據(jù)就真的丟失了,恢復(fù)工具也回力無(wú)天。所以,以只讀模式掛載磁盤(pán)可以盡量降低數(shù)據(jù)塊中數(shù)據(jù)被覆蓋的風(fēng)險(xiǎn),以提高恢復(fù)數(shù)據(jù)成功的比率。

6.1通過(guò)extundelete恢復(fù)單個(gè)文件

1.模擬數(shù)據(jù)誤刪除環(huán)境

在演示通過(guò)extundelete恢復(fù)數(shù)據(jù)之前,我們首先要模擬一個(gè)數(shù)據(jù)誤刪除環(huán)境,這里我們以ext3文件系統(tǒng)為例,在ext4文件系統(tǒng)下的恢復(fù)方式與此完全一樣。簡(jiǎn)單的模擬操作過(guò)程如下:

[root@cloud1 ~]#mkdir /data

[root@cloud1 ~]#mkfs.ext3 /dev/sdc1

[root@cloud1 ~]#mount /dev/sdc1 /data

[root@cloud1 ~]# cp /etc/passwd /data

[root@cloud1 ~]# cp -r /app/ganglia-3.4.0 /data[!--empirenews.page--]

[root@cloud1 ~]# mkdir /data/test

[root@cloud1 ~]# echo "extundelete test" > /data/test/mytest.txt

[root@cloud1 ~]#cd /data

[root@cloud1 data]# md5sum passwd

0715baf8f17a6c51be63b1c5c0fbe8c5 passwd

[root@cloud1 data]# md5sum test/mytest.txt

eb42e4b3f953ce00e78e11bf50652a80 test/mytest.txt

[root@cloud1 data]# rm -rf /data/*

2.卸載磁盤(pán)分區(qū)

在將數(shù)據(jù)誤刪除后,立刻需要做的就是卸載這塊磁盤(pán)分區(qū):

[root@cloud1 data]#cd /mnt

[root@cloud1 mnt]# umount /data

3.查詢(xún)可恢復(fù)的數(shù)據(jù)信息

通過(guò)extundelete命令可以查詢(xún)/dev/sdc1分區(qū)可恢復(fù)的數(shù)據(jù)信息:

[root@cloud1 /]# extundelete /dev/sdc1 --inode 2

......

File name | Inode number | Deleted status

. 2

.. 2

lost+found 11 Deleted

passwd 49153 Deleted

test 425985 Deleted

ganglia-3.4.0 245761 Deleted

根據(jù)上面的輸出,標(biāo)記為Deleted狀態(tài)的是已經(jīng)刪除的文件或目錄。同時(shí)還可以看到每個(gè)已刪除文件的inode值,接下來(lái)就可以恢復(fù)文件了。

4.恢復(fù)單個(gè)文件

執(zhí)行如下命令開(kāi)始恢復(fù)文件:

[root@cloud1 /]# extundelete /dev/sdc1 --restore-file passwd

Loading filesystem metadata ... 40 groups loaded.

Loading journal descriptors ... 54 descriptors loaded.

Successfully restored file passwd

[root@cloud1 /]# cd RECOVERED_FILES/

[root@cloud1 RECOVERED_FILES]# ls

passwd

[root@cloud1 RECOVERED_FILES]# md5sum passwd

0715baf8f17a6c51be63b1c5c0fbe8c5 passwd

extundelete恢復(fù)單個(gè)文件的參數(shù)是“--restore-file”,這里需要注意的是,“--restore-file”后面指定的是恢復(fù)文件路徑,這個(gè)路徑是文件的相對(duì)路徑。相對(duì)路徑是相對(duì)于原來(lái)文件的存儲(chǔ)路徑而言的,比如,原來(lái)文件的存儲(chǔ)路徑是/data/passwd,那么在參數(shù)后面直接指定passwd文件即可,如果原來(lái)文件的存儲(chǔ)路徑是/data/test/mytest.txt,那么在參數(shù)后面通過(guò)“test/mytest.txt”指定即可。

在文件恢復(fù)成功后,extundelete命令默認(rèn)會(huì)在執(zhí)行命令的當(dāng)前目錄下創(chuàng)建一個(gè)RECOVERED_FILES目錄,此目錄用于存放恢復(fù)出來(lái)的文件,所以執(zhí)行extundelete命令的當(dāng)前目錄必須是可寫(xiě)的。

根據(jù)上面的輸出,通過(guò)md5sum命令校驗(yàn),校驗(yàn)碼與之前的完全一致,表明文件恢復(fù)成功。

6.2通過(guò)extundelete恢復(fù)單個(gè)目錄

extundelete除了支持恢復(fù)單個(gè)文件,也支持恢復(fù)單個(gè)目錄,在需要恢復(fù)目錄時(shí),通過(guò) “--restore-directory”選項(xiàng)即可恢復(fù)指定目錄的所有數(shù)據(jù)。

繼續(xù)在上面模擬的誤刪除數(shù)據(jù)環(huán)境下操作,現(xiàn)在要恢復(fù)/data目錄下的ganglia-3.4.0文件夾,操作如下:

[root@cloud1 mnt]# extundelete /dev/sdc1 --restore-directory /ganglia-3.4.0

Loading filesystem metadata ... 40 groups loaded.

Loading journal descriptors ... 247 descriptors loaded.

Searching for recoverable inodes in directory /ganglia-3.4.0 ...

781 recoverable inodes found.

Looking through the directory structure for deleted files ...

4 recoverable inodes still lost.

[root@cloud1 mnt]# ls

RECOVERED_FILES

[root@cloud1 mnt]# cd RECOVERED_FILES/

[root@cloud1 RECOVERED_FILES]# ls

ganglia-3.4.0

可以看到之前刪除的目錄ganglia-3.4.0已經(jīng)成功恢復(fù)了,進(jìn)入這個(gè)目錄檢查發(fā)現(xiàn):所有文件內(nèi)容和大小都正常。

6.3 通過(guò)extundelete恢復(fù)所有誤刪除數(shù)據(jù)

當(dāng)需要恢復(fù)的數(shù)據(jù)較多時(shí),一個(gè)個(gè)地指定文件或目錄將是一個(gè)非常繁重和耗時(shí)的工作,不過(guò),extundelete考慮到了這點(diǎn),此時(shí)可以通過(guò)“--restore-all”選項(xiàng)來(lái)恢復(fù)所有被刪除的文件或文件夾。

仍然在上面模擬的誤刪除數(shù)據(jù)環(huán)境下操作,現(xiàn)在要恢復(fù)/data目錄下所有數(shù)據(jù),操作過(guò)程如下:

[root@cloud1 mnt]# extundelete /dev/sdc1 --restore-all

Loading filesystem metadata ... 40 groups loaded.

Loading journal descriptors ... 247 descriptors loaded.

Searching for recoverable inodes in directory / ...

781 recoverable inodes found.

Looking through the directory structure for deleted files ...

0 recoverable inodes still lost.

[root@cloud1 mnt]# ls

RECOVERED_FILES

[root@cloud1 mnt]# cd RECOVERED_FILES/

[root@cloud1 RECOVERED_FILES]# ls

ganglia-3.4.0 passwd test

[root@cloud1 RECOVERED_FILES]# du -sh /mnt/RECOVERED_FILES/*

15M /mnt/RECOVERED_FILES/ganglia-3.4.0

4.0K /mnt/RECOVERED_FILES/passwd

8.0K /mnt/RECOVERED_FILES/test

可以看到所有數(shù)據(jù)全部完整地恢復(fù)了。

6.4通過(guò)extundelete恢復(fù)某個(gè)時(shí)間段的數(shù)據(jù)

有時(shí)候刪除了大量的數(shù)據(jù)量,其中很多數(shù)據(jù)都是沒(méi)用的,我們僅需要恢復(fù)其中的一部分?jǐn)?shù)據(jù),此時(shí),如果采用恢復(fù)全部數(shù)據(jù)的辦法,不但耗時(shí),而且浪費(fèi)資源,在這種情況下,就需要采用另外的一種恢復(fù)機(jī)制有選擇地恢復(fù),extundelete提供了“—after”“和”--before“參數(shù),可以通過(guò)指定某個(gè)時(shí)間段,進(jìn)而只恢復(fù)這個(gè)時(shí)間段內(nèi)的數(shù)據(jù)。

下面通過(guò)一個(gè)簡(jiǎn)單示例,描述下如何恢復(fù)某個(gè)時(shí)間段內(nèi)的數(shù)據(jù)。

我們首先假定在/data目錄下有個(gè)剛剛創(chuàng)建的壓縮文件ganglia-3.4.0.tar.gz,然后刪除此文件,接著卸載/data分區(qū),開(kāi)始恢復(fù)一小時(shí)內(nèi)的文件,操作如下:

[root@cloud1 ~]#cd /data/

[root@cloud1 data]# cp /app/ganglia-3.4.0.tar.gz /data[!--empirenews.page--]

[root@cloud1 data]# date +%s

1379150309

[root@cloud1 data]# rm -rf ganglia-3.4.0.tar.gz

[root@cloud1 data]# cd /mnt

[root@cloud1 mnt]# umount /data

[root@cloud1 mnt]# date +%s

1379150340

[root@cloud1 mnt]# extundelete --after 1379146740 --restore-all /dev/sdc1

Only show and process deleted entries if they are deleted on or after 1379146740 and before 9223372036854775807.

Loading filesystem metadata ... 40 groups loaded.

Loading journal descriptors ... 247 descriptors loaded.

Searching for recoverable inodes in directory / ...

779 recoverable inodes found.

[root@cloud1 mnt]# cd RECOVERED_FILES/

[root@cloud1 RECOVERED_FILES]# ls

ganglia-3.4.0.tar.gz

可以看到,剛才刪除的文件,已經(jīng)成功恢復(fù),而在/data目錄下還有很多被刪除的文件卻沒(méi)有恢復(fù),這就是”--after“參數(shù)控制的結(jié)果,因?yàn)?data目錄下其他文件都是在一天之前刪除的,而我們恢復(fù)的是一個(gè)小時(shí)之內(nèi)被刪除的文件,這就是沒(méi)有恢復(fù)其他被刪除文件的原因。

在這個(gè)操作過(guò)程中,需要注意是“--after”參數(shù)后面跟的時(shí)間是個(gè)總秒數(shù)。起算時(shí)間為“1970-01-01 00:00:00 UTC”,通過(guò)“date +%s”命令即可將當(dāng)前時(shí)間轉(zhuǎn)換為總秒數(shù),因?yàn)榛謴?fù)的是一個(gè)小時(shí)之內(nèi)的數(shù)據(jù),所以“1379146740”這個(gè)值就是通過(guò)“1379150340”減去“60*60=3600”獲得的。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉