当前位置: 首页 > 科技观察

如何防止根目录被删除?

时间:2023-03-16 11:41:22 科技观察

周末不小心删除了根目录《就这样把根目录删了!!!》,引起广泛讨论:(1)有小伙伴表示同情(2)有小伙伴建议买机票跑路(3)有小伙伴分享了类似的悲剧(比如:many一个空格)rm-rf/home/work/logs/(4)大部分朋友都分享过避免类似悲剧发生的经验。今天,我就把大家的经验总结一下,分享给大家。希望“误删根目录”永远不会再有1.悲剧回顾执行了一个清理日志的脚本。大体逻辑是:...cd${log_path}rm-rf*...好像没什么问题,进入日志目录,然后保存所有日志删除。但是当目录不存在时悲剧发生了。2.大家建议【命令替换】点赞最多的朋友“39度风”建议:将生产环境中的rm-rf命令替换为mv,并写一个普通的shell定时清理来模拟“回收站”功能。【收集权限】此方案建议人数最多:账号权限分离,工作账号在线分配,只能删除/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】这个……好像不是很笼统,技术讨论的第一大前提是“不要有语言之争”(技术讨论的第二大前提是“不要讨论哪个编辑器是便于使用”)。3.其他悲剧除了一些朋友反馈,他们还删除了根目录,有朋友提到:(1)删除了es数据(2)删除了生产数据库(3)删除了home目录(4)格式化了硬盘误盘有朋友提到携程之前的网上事故。我们都放下了吃瓜群众看笑话的心态。其他人可以在十多个小时内从故障中恢复。我们问自己,“如果我们在线的20台服务器全部挂掉”,我们能在十多个小时内恢复吗?跟进跟大家聊聊故障的快速恢复。【本文为专栏作者《58神剑》原创稿件,转载请联系原作者】