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

2020-04-23 23:15发布

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

                                                     

 

前言

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

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

                         

  


登录 后发表评论
0条评论
还没有人评论过~