如何防止根目录被删?

简介: 周末误删根目录《就这样把根目录删了!!!》,引起了广泛的讨论:

####周末误删根目录《就这样把根目录删了!!!》,引起了广泛的讨论:

(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台服务器全被干掉了”,我们能在十几个小时恢复么?

后续和大家聊聊故障的快速恢复。

目录
相关文章
|
4月前
如何表示下级目录
如何表示下级目录。
40 2
|
1月前
|
监控 Python
查找指定目录下最近修改的文件
本文介绍了一个使用Python编写的脚本,用于查找指定目录及其子目录中在过去指定秒数内被修改的文件。通过`os`和`time`模块,脚本遍历目录,检查文件的最后修改时间,并列出符合条件的文件。文章还提供了代码优化建议,包括增加日志记录、异常处理和性能优化,使脚本更加健壮和高效。
23 4
|
8月前
如何把多个文件(夹)随机复制到多个文件夹中
该文介绍了如何使用一个工具批量随机复制文件。首先,提供了两个下载工具的链接,分别是百度网盘和蓝奏云,需要提取码分别为"qwu2"和"2r1z"。接着,展示了工具的界面和操作步骤:在“文件批量复制”版块,开启“随机复制”选项,然后分别复制源文件路径和目标文件夹路径,最后点击开始复制。如果需要,可选择“复制后删除”原文件。完成复制后,检查目标文件夹以确认20个图片已正确随机分布。
|
8月前
快速找出存(不存在)在某个(或多个)文件的文件夹
该内容介绍了一个查找特定文件的工具的使用方法。首先提供了两个下载链接:百度网盘和蓝奏云,分别附带了提取码。接着,展示了在工具中如何操作:切换到批量文件复制版块,通过快捷键Ctrl+5,然后搜索目标文件,选择搜索文件夹并包含子目录。将文件条件输入后开始搜索,等待结果,结束后可通过右键定位到文件夹并打开。最后提示,若要查找完全相同的文件夹,应选择搜索文件并使用特定选项。
清空文件夹下的SVN文件BAT脚本
清空文件夹下的SVN文件BAT脚本
149 0
C#编程-22:判断文件是否存在并创建文件(夹)
C#编程-22:判断文件是否存在并创建文件(夹)
129 0
|
开发框架 .NET Windows
文件和文件夹的操作——获取当前路径方法
文件和文件夹的操作——获取当前路径方法
286 0
|
缓存 Windows
文件夹显示文件或目录损坏且没法读取
 用户反馈说Win7打开Local Settings文件夹提示“位置不可用,拒绝访问"怎么办?Local Settings是Windows系统中的一个隐藏文件,一般存放着和上网有关的历史记录和缓存之类的文件,如果打开Local Settings文件时提示"位置不可用,拒绝访问"下面跟随小编脚步一起看看具体解决方法。
650 0
|
Windows
从目录中查找最大和最小的文件(不包括子目录)
从目录中查找最大和最小的文件(不包括子目录),学会使用File类的一些基本方法的调用。代码如下: package file; import java.io.File; public class FindMinAndMaxFile { public static void main(St...
3060 0
将文件夹下的一级目录文件改名并移动目录
#此段代码实现将文件夹下的一级目录文件改名并移动目录 #list = os.listdir(Datadir) #列出文件夹下所有的目录与文件 #for i in range(0,len(list)): # path = os.
936 0

热门文章

最新文章