飞道的博客

手误【删库】 == 跑路,不存在的 ——删瓦辛格

454人阅读  评论(0)

手误【删库】 ==  跑路,不存在的  ——删瓦辛格

                                                     

 

前言

今天公司服务器的宝塔打不开,让我去修(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,毁我青春,我直接把你删掉

预知后事,且听下回分解【关注我,期待下次分享

                         

  


转载:https://blog.csdn.net/heian_99/article/details/105689982
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场