记一次linux删除命令rm -rf误操作之后的解决方法

  • 记一次linux删除命令rm -rf误操作之后的解决方法已关闭评论
  • 1,897 views
  • A+
所属分类:日常折腾

先来回顾一下上一篇文章(百度搜索“百度文库免积分下载”,排在第一的竟是个病毒!)的后续。昨天晚上我其实就有打百度推广的电话,但是提示不在工作时间。所以,今天10点的样子起床第一件事就是打了客服电话: 400-800-8888,是一个妹子客服接的。我跟她讲了这个事情,说搜索“百度文库免积分下载”排在第一的竞价广告是个病毒。妹子随即同步搜索了一下,说是没有出现广告,我再来一搜索,第一次没有出现,再搜索一次,一模一样的结果。妹子说这个是随时会有变化的。我说,如果有即时通讯,我可以给你发视频。总之,就是我理直气壮地要求他们对这垃圾网站进行处理,她就是随口敷衍,让我用安全管家进行查杀。我直接将网站报给了她,但是有没有用就难说。这一通电话浪费了我10分钟。纯粹就是给自己找事。然而,直到我写这篇文章21点,我搜索的结果还是一如既往:
记一次linux删除命令rm -rf误操作之后的解决方法图片 No.1
好了,开始今天的主题。也是昨天星期一糟糕事的后续。晚上的时候,我发现之前安装在国外vps上面的几个网站都无法访问,可能是服务器的问题。我就想着把它们干脆都搬家到新买的阿里云轻量级应用服务器(香港)上面来。这个绝逼是比国外的访问速度和稳定性都高几个档次。这过程其实也有点儿麻烦。原因在于想要把数据取回来,scp下载速度实在感人,几十kb要下载几百M的数据,不知猴年马月。就想到折衷的办法,用一周前的备份来替代,直接取回最新的数据库就搞定,数据库文件只有百来kb。

好吧,一切都差不多搞定了。数据转移过来了,域名也重新解析了。剩下一点小问题,就是解压出来的原数据有部分没有用到,有一个www的文件夹,直接在scp里面删掉吧。速度慢得一逼,我实在是等不了,就想在ssh里面用rm -rf命令来删除。这个命令之前也是操作过许多次,从来没有出现过错误。但是这是操作莫名就点不对劲。我是用了这样的代码:

cd /www
rm -rf /www

我的本意是删除www文件夹下面的www文件夹。
万万没想到,这两条执行下来,直接将www文件夹下面的所有文件全部删除了。一刹那,我心就凉了。这个目录是什么呢?我安装的是宝塔的网站环境,这个www目录是存放网站数据和数据库的文件。这一下全部都没了!我今天搬过来的几个网站倒不足惜,但我在12月1日就搬过来的2个网站也全部没了。最近的备份也是没有的。而且网站的文章也更新了好几篇。全没了!我抱着不死心的态度,来回刷新了好几遍。没有,确实被删完了。而且宝塔面板的后台也无法进入了。

现在就想办法看,能不能恢复数据。百度了一下:rm -rf恢复删除文件。在csdn上面找了一些教程,筛选了一下,依照这个教程操作了一番:https://blog.csdn.net/tanga842428/article/details/79405971,用的是里面提到的“用extundelete-0.2.4恢复”,但是这里的操作步骤我有点看不懂。所以,又百度了一下“extundelete”,后面应该是参照了:https://yq.aliyun.com/ziliao/56711,这篇文章的讲述。
记一次linux删除命令rm -rf误操作之后的解决方法图片 No.2
这个方法倒确实是有些用处的。帮我恢复了一些网站数据,保存在了一个新生成的文件夹RECOVERED_FILES里,但是呢?数据库文件夹依旧是渣都看不到。我知道问题在哪里。没有挂载盘,因为是阿里云的轻量级应用服务器,只有一个盘,也无处挂载。所以在安装extundelete的时候也进行了读写。导致恢复的数据只有部分。而且网站数据文件都是残缺不齐的。我又试了一次,发现恢复的文件更少。毫无疑问,这是覆盖了。

想要恢复过来的计划落空了。我本来也是半吊子看代码,不想再这样折腾了。我就想,找阿里云发工单看看,有没有他们有没有手段有备份之类的。那时候已经是半夜1点多了。阿里云的工程师居然回复得很快,然而,结果是我手动没有生成快照,他们也毫无办法。
记一次linux删除命令rm -rf误操作之后的解决方法图片 No.3

那么,我只能想到一个办法了。将12月1日的数据恢复出来。再将这10天里发布的文章全部写回去。大概有7、8篇的文章吧,两个网站加起来。但是,我没有备份啊,文章也没有记录。怎么写回来呢?我想到的是快照,百度快照,谷歌快照,反正就是利用搜索引擎的快照功能。当然,这得看运气的。我网站小,可能快照停留在某一个很早之前的一天,我这10天里写的文章根本没有收录,那也找不回来的。所幸的是,百度快照停留在12月4日,用谷歌看的话,是12月8日。我想还有没有更新的呢?没想到,搜狗快照居然是12月10晚上22点。也就是说,所有写的文章都能看到标题和部分内容。这下子就放宽了心,我可能利用搜狗快照,将这几天的文章链接都找到,然后再利用谷歌快照,对每一个链接进行再快照,搬回所有的内容。这里不得不赞一下谷歌,虽然网站没有什么流量,但它的抓取频繁相当高,基本上一天之内,就能给你收录,虽然它并不能给你带来流量。

所以,在2点的时候,我躺下了,很疲惫。

早上7点钟就不觉醒了,大概是因为有事要做,睡觉都惦记着的吧。而且有一个刻不容缓的东西,如果快照在我睡觉的时候更新了,那么今天再看,所有的快照都会变成404状态。如果这样,一切计划都泡汤了。所以,我抓紧时间,一分一秒都不敢再松懈。直接进行快照,将链接全部取出来。再到谷歌快照里,把文章内容复制出来。将文章标题、文章内容、文章链接、发布时间统统整理在记事本里。两个网站分别记录成一个文本。幸运的是,快照还没有变成404状态。这些做好了之后,我再来恢复网站程序。框架都弄好了之后,再来把缺失的文章逐一添加上去。快照取出来的文章是无法获取图片的。我又花了一些时间将图片恢复出来。最近发的图片都是通过手机传到电脑上的,所以,不是个大问题。因为程序是wordpress,所以,发布时间基本上可以设置成和之前一模一样。只是有一个问题,生成的链接不一样了。比如后缀是“3306.hmtl”,而生成的新文章是“3307.html”,这个在后台还无法修复,这对于搜索引擎而言,是一个不友好的行为。我的目的是要和原来一模一样。这个只能是进入数据库处理了。虽然,我之前没有弄过,但还是很快就找到了要修改的地方,在wp_posts的表里,要修改两个字段,一是“id”,一是“guid”。还算比较简单吧。

然后,在11点的样子,我终于把数据全部恢复完成了。总算可以起床了(我是坐在被窝里进行上述操作的)。我妈以为我现在才起床呢,我说我忙得不得了,七点钟就起来了忙到现在。

这下子我不敢再轻易删除不要的东西的。写完这篇文章之后,我登录阿里云进行了快照备份。

avatar