1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Linux 誤刪文件恢復(fù)命令及方法

        共 3211字,需瀏覽 7分鐘

         ·

        2020-12-15 10:13

        公眾號關(guān)注“杰哥的IT之旅”,

        選擇“星標(biāo)”,重磅干貨,第一時間送達(dá)!


        作者:漠效

        鏈接:http://r6d.cn/JzNf

        大家好,我是JackTian。

        由于公眾號的改版,為了保證你們第一時間能看到我的文章,大家記得將公眾號?加星標(biāo)置頂?哦!


        前言


        無論在哪個系統(tǒng)中,刪除文件都是必須謹(jǐn)慎的操作。


        因為如果不小心刪除了重要文件,就會導(dǎo)致個人或公司出現(xiàn)重大的損失。


        類似于windows系統(tǒng)誤刪了文件,可以使用一些軟件進(jìn)行恢復(fù)操作。Linux也是有幾款軟件可以做到誤刪恢復(fù)的。


        注意事項:雖然有軟件可以對誤刪的數(shù)據(jù)進(jìn)行恢復(fù),但是完全恢復(fù)數(shù)據(jù)的概率并不是百分百的。


        因此,使用rm命令刪除文件的時候,一定要小心;重要的數(shù)據(jù)一定要有備份;并且恢復(fù)刪除的數(shù)據(jù)前,刪除文件的目錄內(nèi)不能往進(jìn)存放新東西,否則覆蓋掉的信息無法找回。


        下面介紹的就是對Linux中誤刪文件的恢復(fù)操作。


        1、lsof


        原理:
        這個命令實際上并不能直接用來恢復(fù)文件,不過它可以列出被各種進(jìn)程打開的文件信息。


        配合其他命令,從/proc目錄下的信息中恢復(fù)“文件已刪除,但進(jìn)程仍保持打開該文件的狀態(tài)”的文件。


        /proc目錄是掛載的是在內(nèi)存中所映射的一塊區(qū)域,當(dāng)我們對這些文件進(jìn)行讀取和寫入時,實際上是在從內(nèi)存中獲取相關(guān)信息。


        因此,當(dāng)我們對文件進(jìn)行讀取或?qū)懭霑r(即有進(jìn)程正使用文件時),哪怕硬盤中的該文件已刪除,還可以從內(nèi)存中的信息恢復(fù)文件。


        注意:
        必須以 root 用戶的權(quán)限運(yùn)行, 因為lsof 需要訪問核心內(nèi)存和各種文件。


        只能恢復(fù)“文件已刪除,但進(jìn)程仍保持打開該文件的狀態(tài)”的文件。


        如果誤刪了目錄,目錄中的其他文件未被進(jìn)程打開,沒有進(jìn)行使用的文件將無法使用此方法恢復(fù)。


        lsof輸出信息的意義:

        COMMAND       進(jìn)程的PID(進(jìn)程標(biāo)識符)USER          進(jìn)程所有者FD            用來識別該文件(文件描述符)DEVICE        指定磁盤的名稱SIZE          文件的大小NODE          索引節(jié)點(diǎn)(文件在磁盤上的標(biāo)識)NAME          打開文件的確切名稱

        最常用參數(shù):


         -c       顯示某進(jìn)程現(xiàn)在打開的文件 -p       顯示哪些文件被某pid進(jìn)程打開 -g       顯示歸屬某gid的進(jìn)程情況 -d       顯示目錄下被進(jìn)程開啟的文件 -d       顯示使用fd為4的進(jìn)程 -i:80    顯示打開80端口的進(jìn)程

        恢復(fù)文件操作


        環(huán)境:
        在/mnt下有一些文件,其中一個文件train.less正在被查看,然后另一個終端將其刪除


        【1】lsof查看


        查看正在使用刪除文件的進(jìn)程號

        lsof /mnt


        【2】恢復(fù)


        切換到/proc下,刪除文件對應(yīng)的進(jìn)程的pid下的文件描述符中的目錄中;將對應(yīng)的內(nèi)容重定向或cp到其他文件中
        重點(diǎn)關(guān)注:PID 與 FD

           cd /proc/31284/fd/   cat 4 > /mnt/ferris_train.less

        2、extundelete


        原理:
        使用存儲在分區(qū)日志中的信息,嘗試恢復(fù)已從ext3或ext4的分區(qū)中刪除的文件


        優(yōu)點(diǎn)
        相比于ext3grep只能恢復(fù)ext3文件系統(tǒng)的文件,其適用范圍更廣,恢復(fù)速度更快


        extundelete官方地址(官方文檔):
        http://extundelete.sourceforge.net

        extundelete下載地址:
        http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
        (最新版本的extundelete是0.2.4,于2013年1月發(fā)布)


        注意:

        • 在數(shù)據(jù)刪除之后,要卸載被刪除數(shù)據(jù)所在的磁盤或是分區(qū)

        • 如果是系統(tǒng)根分區(qū)遭到誤刪除,就要進(jìn)入單用戶模式,將根分區(qū)以只讀的方式掛載,盡可能避免數(shù)據(jù)被覆蓋

        • 數(shù)據(jù)被覆蓋后無法找回

        • 恢復(fù)仍有一定的機(jī)率失敗,平時應(yīng)對重要數(shù)據(jù)作備份,小心使用rm

        安裝


        1、依賴安裝

        centos安裝操作yum install e2fsprogs-devel   e2fsprogs* gcc*
        ubuntu安裝操作apt-get install build-essential e2fslibs-dev e2fslibs-dev

        2、編譯安裝

        wget http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2tar xf  extundelete-0.2.4.tar.bz2cd  extundelete-0.2.4./configuremakemake install

        cd /root/extundelete-0.2.4/src

        extundelete?-v

        執(zhí)行make命令會在src目錄下生成extundelete可執(zhí)行文件,可在此直接執(zhí)行恢復(fù)命令。


        執(zhí)行make install會將程序安裝在/usr/local/bin/下



        恢復(fù)文件操作


        執(zhí)行extundelete命令的當(dāng)前目錄必須是可寫的。


        1、查看要恢復(fù)文件的分區(qū)的文件系統(tǒng)

        df??-Th

        2、對要恢復(fù)文件的分區(qū)解除掛載

        umount /mnt

        3、查看可以恢復(fù)的數(shù)據(jù)

        指定誤刪文件的分區(qū)進(jìn)行查找
        最后一列標(biāo)記為Deleted的文件,即為刪除了的文件

        extundelete /dev/vdb1 --inode 2 (根分區(qū)的inode值是2

        4、恢復(fù)單個目錄

        指定要恢復(fù)的目錄名
        如果是空目錄,則不會恢復(fù)


        extundelete /dev/vdb1 --restore-directory  ferris

        當(dāng)執(zhí)行恢復(fù)文件的命令后,會在執(zhí)行命令的當(dāng)前的目錄下生成RECOVERED_FILES目錄,恢復(fù)的文件都會放入此目錄中。如未生成目錄,即為失敗。


        5、恢復(fù)單個文件

        指定要恢復(fù)的文件名
        如果幾k大小的小文件,有很大幾率恢復(fù)失敗

        extundelete /dev/vdb1 --restore-file openssh-7.7p1.tar.gz

        6、恢復(fù)全部刪除的文件

        無需指定文件名或目錄名,恢復(fù)全部刪除的數(shù)據(jù)


        extundelete /dev/vdb1 --restore-all

        ??????????

        往期資源回顧 需要可自取

        推薦閱讀

        點(diǎn)個[在看],是對杰哥最大的支持!
        瀏覽 12
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            久操视频免费观看 | 欧美日韩精品人妻一区二区三区 | 国产精品久久久久久久白皙女 | 天天日比 | 国产一级粉嫩xxxx | 国产无精乱码一区二区三区 | 亚洲成网站 | 天天做天天爱夜夜爽少妇 | 欧美91av| 从我操逼片儿 |