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

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

                                                     

 

前言

今天公司服務器的寶塔打不開,讓我去修(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

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

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

./configure
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

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

能恢復多少,就靠運氣

                                                          

 

後記:

運氣較好,恢復了數據

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

                                                                                                                                                                                             

切記

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

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

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

                         

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章