本文主要是介绍如何防止根目录被删?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
周末误删根目录《就这样把根目录删了!!!》,引起了广泛的讨论:
(1)部分朋友表达了同情
(2)部分朋友建议买机票跑路
(3)部分朋友分享了类似的悲剧(例如:多一个空格)
rm -rf / home/work/logs/
(4)大部分朋友分享了避免类似悲剧的经验,今天将大伙的经验进行一个汇总,分享给大家,希望“误删根目录”的事情永远不再出现
一、悲剧回顾
执行了一个清理日志的脚本,大致的逻辑是:
...
cd ${log_path}
rm -rf *
...
看上去没有任何问题,进入到日志目录,然后把日志都删除。但是,当目录不存在时,悲剧就发生了。
二、大伙建议
【命令替换】
点赞数最多的朋友“39度的风”建议:
生产环境把rm -rf 命令替换为mv,再写个定时shell定期清理,以模拟“回收站”功能。
【收拢权限】
这个方案建议的人数最多:
帐号权限的分离,线上分配work帐号,只能够删除/home/work/logs/目录,无法删除根目录。
【使用&&】
有部分朋友建议,使用&&将
cd ${log_path}
rm -rf *
合并成一个语句
cd ${log_path} && rm -rf *
当前半句执行失败的时候,后半句不再执行。
【不使用cd】
对于
cd ${log_path}
rm -rf *
直接改为
rm -rf ${log_path}
而不是cd到目录下再执行。
这个方案个人感觉对于这个case可行,但不太通用,总有需要cd的场景吧。
【判断目录是否存在】
制定编码规范,对目录进行操作之前,要先判断目录是否存在。
确实,可是靠人的自觉来保证规范的执行,总感觉有些不太靠谱。
【单元测试】
和制定编码规范类似,自测貌似比较难测出来,根据经验:rd往往以自己编写代码的思路和逻辑编写自测用例,来证明自己代码的正确性。
【使用Python,避免使用shell】
这…
貌似不太通用,技术讨论的第一大前提“不要有语言之争”(技术讨论的第二大前提“不要讨论哪个编辑器好用”)。
三、其他悲剧
除了部分朋友反馈也删除过根目录,还有朋友提到:
(1)删除过es数据
(2)删除过生产数据库
(3)删除过home目录
(4)误格式化过硬盘
还有朋友提到了携程之前的线上事故,我们都放下吃瓜看笑话的心态,别人还能够在十几个小时故障恢复,我们问自己一句,“假如我们线上20台服务器全被干掉了”,我们能在十几个小时恢复么?
后续和大家聊聊故障的快速恢复。
四、福利
在《如何做一场B格满满的技术大会演讲》中,提到了top100summit这个技术峰会,有朋友在留言里问这个大会是干嘛的,top100summit是麦思博组织的全球顶尖软件案例研究峰会,有产品、架构、测试、流程、管理等5个方向。
我本身比较关注架构方向,这个方向有Microsoft、Twitter、Airbnb、Instagram、百度、阿里、腾讯等多个公司的架构专家来分享他们的成功案例,很荣幸,58到家也有案例入选。
我在原文中提到,看能不能帮忙争取一些免费参会票,和举办方进行了耍赖式,撒娇式沟通,没能成功。但争取到一个打折F码,能够享受门票65折优惠(4天的大会,原价5800元一张,F码票价3500,还是非常值得的)。
打折F码使用方式,登录购票网址(或者点击“阅读原文”):http://www.top100summit.com/apply
填写资料,优惠码输入“shenjian”即可。我试了下,购票体验有点差,不支持在线支付,however,等他们线下联系吧,毕竟3500四天的大会,值了。
这篇关于如何防止根目录被删?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!