Linux 下重要文件被刪除?我有妙招

2021-03-02 高效運維

誤刪除linux系統文件了?不用急,本文將給你一個恢復linux文件的方法,讓你輕鬆應對運維中的各種風險問題。方法總比問題多~

說在前面的話

針對日常維護操作,難免會出現文件誤刪除的操作。大家熟知linux文件系統不同win有回收站,刪除後的文件可以到垃圾箱尋回,要知道linux文件修複比較費勁,網絡上面的文檔也是五花八門。所以本次研究一種比較靠譜的文件和目錄恢復方法,也給維護人員留一條後路。

分析對比debugfs. testdisk 6.14. extundelete,對比各自官網介紹和操作說明本次決定研究extundelete對文件和目錄的恢復操作。

extundelete下載官網地址:https://pkgs.org/download/extundelete

Linux下文件誤刪除,使用extundelete恢復測試過程

給虛擬主機添加一塊磁碟,磁碟為/dev/sdb,如下:

格式化磁碟,並進行掛載

# mkfs.ext4 /dev/sdb# mkdir /usr/local/dbdata/# mount /dev/sdb /usr/local/dbdata/

測試誤操作刪除以下文件

/usr/local/dbdata/gperftools-2.4.tar.gz #文件/usr/local/dbdata/pcre-8.32 #目錄

執行誤操作:

# rm -rf /usr/local/dbdata/gperftools-2.4.tar.gz /usr/local/dbdata/pcre-8.32

將誤操作所在分區進行只讀保護

如果確定文件被誤刪,在沒有備份的情況下請馬上對分區實施寫入保護(預防新的寫入覆蓋誤刪的塊數據,因此權限給只讀):

# mount -o remount,ro /dev/sdb # mount -o remount,ro /usr/local/dbdata/

數據恢復工具安裝

工具安裝部署

官方網站是http://extundelete.sourceforge.net/ ,其目前的穩定版本是extundelete-0.2.4.

工具下載

# wget https://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

解壓安裝

依賴包

# yum -y install gcc-c++ e2fsprogs.x86_64 e2fsprogs-devel.x86_64# tar -jxvf extundelete-0.2.4.tar.bz2# cd extundelete-0.2.4# ./configure# make && make install

驗證安裝結果

# extundelete -v

文件恢復過程

恢復指定文件:

原理:從根節點(inode=2)開始找到被刪除文件的i節點,然後recover i節點。

以下是模擬刪除gperftools-2.4.tar.gz(文件)和pcre-8.32 (目錄)

先檢測被刪除的文件有哪些:

# extundelete /dev/sdb --inode 2

從圈出來的可以看到,有以下兩個

gperftools-2.4.tar.gz 15 Deletedpcre-8.32 655361 Deleted

注意:恢復過程不要在誤刪分區進行,謹防inode. block塊相互覆蓋

先恢復文件(可根據文件名進行恢復):

# extundelete /dev/sdb --restore-file gperftools-2.4.tar.gz

恢復目錄(根據目錄名恢復):

# extundelete /dev/sdb --restore-directory pcre-8.32

最後會在當前目錄下看到一個名為RECOVERED_FILES的目錄,在目錄裡就可以看到被誤刪除的文件以及目錄:

說在後面的話

根據上面操作證明extundelete 工具可以實現對誤刪數據的恢復,而且操作簡單。

總結:

使用rm一定要謹慎

磁碟按照功能進行分區是必要的

最少掌握一種數據恢復方式

本文來自 運維人生 轉載請註明;本文地址:http://www.ywadmin.com/?id=76

IT男通宵加班竟導致雙目失明

電費竟然佔了數據中心運維總成本的7成?

第二屆運維行業年度盛典:夠牛?大獎等您來

運維團隊踐行的三種方式:簡、智、深 | 騰訊深度思考

鳳凰網:基於服務樹的監控系統實踐

民生銀行:我們的 ELK 日誌分析平臺

相關焦點

  • Linux怎麼刪除文件夾及其下所有文件?
    Linux 系統有一點比不了 Windows 系統的就是操作不夠直觀,比如我想刪除伺服器上的某個文件夾,直接通過 FTP 連接上去刪除沒有權限,需要通過 putty 連接伺服器通過命令才能刪除。而 Linux 沒有回收站的說法,所以用命令刪除文件或文件夾都要格外小心,boke112 也是輸入刪除命令反覆確認後才敢按回車鍵刪除。為了以後刪除文件需要特意將 Linux 刪除文件夾及其下所有文件的命令分享給大家。
  • Python學習第174課——Linux移動文件、重命名文件、刪除文件命令
    我們桌面上的linux文件夾裡面的game文件夾,裡面只有一個mygame,沒有其他的東西,如下圖:而在linux_intro裡面有個文件linux_oprate.txt,現在我們要把linux_oprate.txt這個文件移動到game文件夾裡面,就可以使用命令:mv linux_intro/linux_oprate.txt game然後我們查看下
  • Linux下文件及文件夾的操作與處理
    前言在Linux中,對文件或文件夾的操作一般包括:創建、改名、移動、刪除,這些都是比較基本的操作,大家應該掌握。在這裡面,有些命令和Windows下的DOS命令是相似的,如果以前了解過DOS,對學習也會有一定的幫助。
  • 記一次linux下rm無法刪除文件 Permission denied沒有權限
    rm無法刪除文件,通過lsattr命令查看文件權限也沒有隱藏屬性i,伺服器上也沒安裝雲鎖安全軟體。,多了隱藏屬性i,取消.的i屬性後,重新rm刪除成功。[root@jdian .git]# lsattr -a-------------e- ./..----i--------e- ./.-------------e- ./.mysql.conf[root@jdian .git]# chattr -i .
  • linux中的文件root權限都不能刪除的解決方案
    在linux系統中,root用戶擁有最高權限,可以幹任何事情,但是有些時候,root用戶卻不能刪除一個小小的一般文件。其實只要root用戶更改下這個文件的屬性,還是可以刪除的。首先刪除一個文件,提示'Operation not permitter',普通用戶不能刪除;把用戶升級到root用戶,然後在刪除,然後提示'Operation not permitter',居然root用戶都無法刪除,這個不太科學啊;原來是文件的屬性在裡面作怪,只要登錄超級用戶,查看下文件的屬性都有哪些,然後用root用戶取消屬性,文件就恢復到一半的文件了;
  • Linux Shell教程 - 如何刪除重複的文本行
    需要對日誌文件中的數據進行排序,但是有太多重複的行。 如何從GNU/Linux下的文本文件中刪除所有重複的行?
  • linux刪除命令rm的使用
    在linux中創建文件很容易,系統中隨時會有文件變得過時且毫無用處。用戶可以用rm命令將其刪除。該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對於連結文件,只是刪除了連結,原有文件均保持不變。
  • Linux常用文件類別有哪些 詳細解讀Linux不同類型的文件
    Linux下也沒有盤符的概念(如C盤,D盤),而只有目錄,不同的硬碟區分是被掛載在不同目錄下的。此外,linux的文件沒有擴展名,所以linux下的文件名稱和它的種類沒有任何關係。例如,abc.exe可以是文本文件,而abc.txt也可以是可執行文件。Linux下的文件可以分為5種不同的類型:普通文件,目錄文件,連結文件,設備文件和管道文件。
  • Linux學習教程-Linux下文件內容操作
    Linux下文件內容操作常用的文件內容操作有文件壓縮解壓縮、文件大小行數統計、文件內容查詢等。yct@ehbio:~/ehbio_project$ lsehbio3.fa ehbio4.fa ehbio5.fa ehbio.fa second.fawc (word count): 一般使用wc -l獲取文件的行數# 輸出文件有14行ct@ehbio:~/ehbio_project$ wc -l ehbio.fa14 ehbio.fa獲取文件中包含大於號 (>)的行
  • Linux 文件和文件夾權限詳解
    我們常常在windows開發項目,最後將開發完的項目移植到linux伺服器運行,所有流程步驟都是正常的但是有時候頁面就是打不開,訪問就是出錯,很多初級工程師就會開始懷疑人生,開始發慌,甚至會不會覺得自己的項目不兼容linux系統。因為項目文件從windows到linux中有些文件並沒有開啟可讀可寫的權限,當然會訪問出錯。
  • Linux下文件或文件夾的複製(拷貝)
    前言在linux中,經常會用到文件或者文件夾的複製,要做到將一個文件複製到本機的另一個位置,就要學會使用linux的cp命令;如果是把一個文件複製到可以訪問的網絡機器的某個位置,那麼就要用到scp命令,scp代表遠程拷貝。
  • Linux運維之Linux文件管理
    我們先來看看Linux系統大體上的目錄有哪些Linux系統目錄結構在Linux系統中,目錄被組織成一個:單根倒置樹結構,文件系統從根目錄開始,用/來表示。文件名稱區分大小寫( 大小寫敏感還需要看具體的文件系統格式 ),以.開頭的為隱藏文件,路徑用/來進行分割(windows中使用\來分割),文件有兩個種類:元數據與數據本身.在操作linux系統時,通常會遵循以下的分層結構規則:LSB (Linux Standard Base) / FHS
  • Linux命令之文件搜索
    前言在linux最小安裝模式下,當我們登錄到一臺不是自己安裝的linux伺服器上時,有的時候我們需要知道某個軟體的安裝位置,例如:我們需要知道mysql安裝在哪個目錄下,那麼我們應該怎麼辦呢?這就用到了文件的搜索功能。
  • Linux下文件(文件夾)的壓縮和解壓
    前言在linux下,當我們上傳一個較大的文件或者要安裝一個軟體(如tomcat、mysql等)時,我們需要先將官網下載的壓縮包在linux伺服器上進行解壓,再進行安裝。如果是由程序包生成的一個目錄內容較多或較大時,我們還可能需要對某個文件夾需要壓縮,這就需要用到我們本節要介紹的內容,文件(文件夾)的壓縮和解壓。
  • 在linux下使用noatime提升文件系統性能的方法
    在linux下使用noatime提升文件系統性能的方法 linux系統功能強大,但是目前大多數用戶都是用的是windows系統,對於linux系統來說很多功能用戶還很陌生,本文介紹了在linux下如何使用noatime提升文件系統性能的方法。
  • Linux刪除目錄下文件的10種方法
    刪除當前目錄下的文件1.rm -f *#最經典的方法,刪除當前目錄下的所有類型的文件2.find . -type f -delete或find .-type f`#刪除全部普通文件5.for delete in `ls -l`;do rm -f * ;done#用for循環語句刪除當前目錄下的所有類型的文件刪除指定目錄下的文件
  • Linux文件的常用操作命令
    reload # 重載reboot # 重啟halt # 關機poweroff # 關機2、查看文件常用命令cat # 在命令提示符下查看文件內容more # 在命令提示符中分頁查看文件內容查看你當前所在的目錄cd # 切換目錄ls # 查看顯示目錄的內容du # 統計目錄和文件空間的佔用情況mkdir # 創建新目錄rmdir # 刪除空目錄touch # 創建文件rm # 刪除文件
  • 大神教你在Linux中查找和刪除重複文件的4種方法
    在本教程中,您將學習如何使用rdfind和fdupes命令行工具以及稱為DupeGuru和FSlint的GUI工具在Linux中查找和刪除重複文件。需要注意的是 - 永遠要小心你在系統上刪除的內容,因為這可能會導致不必要的數據丟失。如果您正在使用一個新工具,首先在一個測試目錄中嘗試它,在那裡刪除文件不會出現問題。1.
  • vim+py文件構造linux後門
    linux 後門有很多,像bash後門,openssh後門等等,今天,我將帶大家探討一下python後門。python後門,其實就是用python編寫的一個簡單的socket伺服器端。臺設備可同時連接),將linux下的標準輸入、輸出、錯誤重定向到套接字中並開啟一個shell,從而實現數據傳輸。
  • linux 怎麼刪除目錄
           linux 怎麼刪除目錄,當我們用命令創建目錄,在創建的時候多了幾個,怎麼用命令來刪除呢?如下圖教您怎麼操作。首先啟動linxu作業系統,然後進入到桌面。