您的位置:首页 > 运维架构 > Linux

记一次惊险的文件恢复

2015-08-12 17:29 134 查看
之前就被很多前辈的文章提醒过:在linux下操作文件,一定要小心误删,小心误覆盖!我也一向是小心翼翼,rm指令用的时候绝对要看三遍才删除。不过今天还是掉进坑里了。

本来的操作只是需要在一个白名单上添加两个url,并且生成它对应的md5文件告诉下游文件有更新了。非常简单的操作,我看这个目录下本来也没有备份文件,想着这么简单的操作就不用备份了。于是修改完了白名单white_list,我直接就用md5sum命令生成md5文件。这个时候,悲剧发生了!本来正确的指令应该是md5sum white_list > white_list.md5,结果感冒头晕的我直接写成了md5sum white_list > white_list。然后

。。。按下enter键的一瞬间我整个人就斯巴达了。。。

我马上cat看了一下文件,果然被md5值覆盖了。我又查看了一下目录下有没有隐藏的备份文件,例如vi的备份文件等等,也木有。。。

天啦,本来40多万行的数据就这样被我误删了么!我本来昏昏沉沉的大脑瞬间清醒了!

接下来我的大脑高速运作,采取了如下操作:

1.马上问上一个项目负责人:这个文件有没有备份?答案是木有。。。

2.我之前是用vim打开过这个文件,所以终端上应该还有一些残留。所以我立刻回滚终端上的输出,虽然不多,但是好歹拯救了最后几十行的内容,记作remains吧(最后发现这部分的内容就是关键的关键啊,里面还有原有文件的行数!)

3.查看其他目录下的文件,看看有没有备份文件或类似文件,结果还真让我发现了一个文件,通过比对这个文件和remain中记录的原文件行数,发现他们很类似!只相差5行,后来我又看了一下这个五行应该刚刚好就是这个文件与remains结尾不同的五行

4.我马上小心翼翼地把这个文件拷贝过来,然后按照之后的残余文件内容进行修改,得到了一个可能的恢复文件recovery_try

5.不过我将这个recovery_try的md5值与原文件的md5值比对之后发现不一致。。。shit。。。

6.后来又想了一些,会不会是之前添加的两个url的问题呢?于是我又删除了recovery_try的最后两行,生成md5值,这次是与最开始的white_list.md5文件进行比对,发现是一样的!这样就可以确定是恢复成功的啦!!!

最后总算是有惊无险地恢复了,这个白名单如果真的删除的话,不知道线上会有什么样的损失。。。

上一个项目负责人也提醒我,马上把这个项目的代码和配置文件都备份一下吧。我深以为然。

总结一下今天的这件事情吧:

1.备份是必须的,做任何操作,哪怕是很小的操作之前都应该做好备份。整个项目接手之前最好做一个整体的备份!

2.遇到问题了不要慌张,冷静思考可能的解决方法。如果我今天一激动做了一些无效操作的话,之前在终端上残留的文件信息可能也找不回来了。

3.操作一定要小心细致。。。

4.另外吐个槽:这么重要的平台工具真的应该早点就上线,让op去维护了。。。让我一个小小的rd实习生做修改真的还是蛮危险的。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  备份 linux md5