搜索
查看: 2936|回复: 0

[linux] 我谨慎地使用了rm -fr,为什么还是导致了灾难?

[复制链接]

33

主题

46

帖子

230

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
230
发表于 2017-2-21 19:39:20 | 显示全部楼层 |阅读模式
注:本文是生信媛微信公众号原创文章
作者:天地本无心
原文链接:
http://mp.weixin.qq.com/s?__biz=MzI1MjU5MjMzNA==&mid=2247483773&idx=1&sn=d1aa94f4b4ed076431cda0ce69543ce2&chksm=e9e028dcde97a1ca5a9a44a5e49d9665388651bbd1ec6d0d348c098fe8fd2d369f60bb15143f#rd



首先我们得明白, rm -fr 的意思, rm即为删除,-r 表示--recursive,递归的,简单地理解为一切的。-f 表示--force,  就是强制性的意思,不需要经过你的确认。
比如 rm -fr /home/wandering513/ 就表示删除家目录下的wandering513这个文件夹,但如果,你是一个激情洋溢的程序猿,再输入rm -fr /之后就敲入了回车….,这样就可能引发灾难。
1.png
前几个礼拜,我朋友圈里的各大技术公众号,纷纷在推送一个新闻,那就是Gitlab这家公司,因为错误的rm -fr操作,删掉了数据库目录,虽然进行了一系列补救措施,但最终Gitlab仍然丢掉了差不多6个小时的数据。之所以产生这个重大的技术事故,是因为Gitlab这个公司犯了两个致命的错误。第一个是运维人员是在生产环境上输入的删除数据库的命令, 另外一个是该公司的恢复数据时5种机制全部失效。其实这种问题,怨不得谁。就像泰坦尼克号,如果不是因为太多的舱进水,如果只是某个船舱进水,它仍然会保持漂浮而不至于沉没。
2.png
至于前年的携程宕机事故,原因更为离奇,据说是某个运维小哥,女朋友跟某公司高管好了,冲冠一怒为红颜,把公司的rm -fr / 把公司的根目录给删了,但这是据说而已,大家切勿当真。最后携程公司发布公告,经携程技术排查,确认此次事故是由于员工错误操作所导致,和外界猜测的相符合。
还有一个也是跟rm -fr 相关的,更加忧伤的故事。有一个程序猿错误地使用了rm -fr /操作,把一家公司给删没了…,这个哥们比上面的两个要聪明一点点,没有直接在命令行里删除。而是写了一个bash脚本,但是一个有问题的bash脚本… ,他想执行的是 rm -fr {foo}/{bar}, foo和bar是脚本中动态传递的两个变量。然而由于变量处理出错,通用语法未能成功地在bash中插值,所以最终的指令就变成了灾难性的rm -fr /,不仅删除了全部文件,并且把备份也删了。
3.png
最后这个小哥在网上发帖求助,大家只能安慰他,并且劝他请个好律师,这样赔得少点。
好像这些事离我们都很遥远,但是我的身边,包括我自己确实实实在在地经历过这样的事。
刚进入实验室的时候,就听说三师兄把大师兄的的主目录全部删掉了,事情这个样子的,三师兄去大师兄home目录下,打包拷东西,并且建了个文件夹还是怎么着,然后拷完之后,在删除自己建的文件的时候,不小心输入了rm -fr ., 这个命令把大师兄做进化两个多月,画的各种进化树全删了,后来大师兄转NGS方向,现在在美国做博后,据说还挺感谢三师兄当年删了他的家目录。
当初我听到这个消息,我的心情是这样的。
4.png
没过多久,这件事就发生在了自己的身上,囧。事情是酱紫的,实验室的二师兄向来神通广大,以收集各种难找的参考基因组,注释文件闻名,有一天我找他要一个物种的参考基因组。师兄直接给我ln -s /his_path/genome  /home/ztxu/softlink, 在我的目录下建了一个软连接。而当这个活做完之后呢,作为一个强迫症患者,不允许自己的主目录下有杂七杂八的东西,所以删除了软连接,大家看好了啊。
我的操作是 rm -fr softlink/,作为一个激情洋溢的半程序猿,总喜欢自动补全。 这下子把师兄原来的genome下的文件全删了!!!,隔了半月,师兄在群里说,谁把我文件夹删了? 这件事惊动了老板。 后来我反复测试,之后弄清楚了原委,然后主动自首,幸好师兄有备份,这场风波才这么过去。
如果我当初的操作是rm -fr softlink, 那没事,就是删除了softlink这个软链接。但我多输入了一个rm -fr softlink/ ,那就坏事了,这个操作是把软连接指向的原链接下的东西全部删光!
5.png
这件事情,导致了我们实验室的权限改革,每个人的家目录只能自己可读可写可执行; 公共目录里,大家只能读。并且,各位看客要明白一个道理:今后谨慎地给菜鸟建软连接!!!并且自己的重要文件,比如脚本,pipeline 之类的东西,多弄几个备份。
最后,希望大家能够明白,rm -fr 的严重后果,谨慎使用。同时,大家不要在自己的家目录下测试这里面我提到的东西,不然大家自行负责~

欢迎到微信公众号订阅我们
生信媛
bio_sxy








上一篇:linux shell tricks for bioinformatics之三: 内附部分sRNAs分析pipeline
下一篇:find和xargs连用虽好,但用起来要小心哦~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-11-21 04:59 , Processed in 0.033438 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.