手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


前言

今天公司服務器的寶塔打不開,讓我去修(ps:寶寶委屈)

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


打開找一下問題所在

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


問題:

發現是寶塔官方的cdn好像掛掉了

解決思路:

  • (1)本地重新搞個服務器裝寶塔,發現沒問題
  • (2)比較一下,發現線上的確實cdn有問題
  • (3)把本地的可以用的cdn,放到線上就行。

解決:

臥槽,我發下,我根本不瞭解寶塔的目錄結構【ps解決毛線,下班走人


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


正文

別眨眼,接下的我sb的操作,真的亮瞎我狗眼【ps:別害怕,也會亮瞎你的狗眼的,嘿嘿。。。】


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格

常規操作:

(1)備份要修改的文件,這是職業本能,OK,沒毛病,我喜歡。

(2)刪除那個沒用的文件 【文件:你才沒用,看老子的移魂大法】

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


重點:

備份一切over,刪除時,我手賤多打了個 * 。

然後沒思考,一個回車,那感覺爽啊

求德瑪得...........................................................................................................雅蠛蝶...............................................................................................................

對,ctrl +c 你已經看出我的絕望了

說時遲那時快,掏出手機,搶票一張去往非洲的機票


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


我多打一個 * ,導致把線上環境的 nginx服務,php環境,redis緩存,mysql數據庫,全部刪掉了

不多說,趕緊跑路了..........................................................................

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格

飛機延時,公司發現

跑路失敗,當場被捕


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


數據恢復


  • (1)停止對服務器進行一切的寫入操作,卸載掛載
  • (2)安裝extundelete,進行掃描
  • (3)恢復數據,環境再次重新工作

PS:因為這個服務器沒有搞本地備份和異地本地,所以才有下面這些破事,再不是,直接備份恢復就行了

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


(1)停止對服務器進行一切的寫入操作,卸載掛載

當發現誤刪除文件時,為了儘可能的恢復數據,先要關掉所有的正在進行的服務,不要再進行數據的寫入,要不然恢復的概率那就低了。我們可以直接

# killall 進程名

或者

# kill -9 pid

然後把誤刪除的文件所在分區,重新掛載成只讀的

# mount -o ro /dev/sdb /data/

(2)安裝extundelete

  1. yum install bzip2 gcc-c++ e2fsprogs* -y
  2. wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


  1. tar jxvf extundelete-0.2.4.tar.bz2
  2. cd extundelte-0.2.4


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


  1. ./configure
  2. make && make install


手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


驗證安裝結果

extundelete -v

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


(3)進行掃描,恢復數據

恢復指定文件:

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

刪除目錄:/www/server

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


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

extundelete /dev/mapper/centos-root --inode 2

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


extundelete /dev/mapper/centos-root --inode 1703938

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


extundelete /dev/mapper/centos-root --inode 1703940

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


extundelete /dev/mapper/centos-root --restore-directory /www/server

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


  1. #查看能恢復的數據:
  2. [root@localhost ~]# extundelete /dev/sdc1 --inode 2
  3. #恢復單個文件
  4. [root@localhost ~]# extundelete /dev/sdc1 --restore-file somefile
  5. #恢復目錄
  6. [root@localhost ~]# extundelete /dev/sdc1 --restore-directory /somedir
  7. #恢復所有文件
  8. [root@localhost ~]# extundelete /dev/sdb1 --restore-all

能恢復多少,就靠運氣

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


後記:

運氣較好,恢復了數據

把生成環境搭建出來,跑上面完全沒有問題

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格


切記

  • (1)記得備份
  • (2)不要用rm
  • (3)幹啥要三思

下次更新,“垃圾rm,毀我青春,我直接把你刪掉

預知後事,且聽下回分解【關注我,期待下次分享】

手誤【刪庫】 == 跑路,不存在的 ——刪瓦辛格



分享到:


相關文章: