Whatsapp

你知道一些疯狂的“rm

Anonim

rm -rf是一个类似于DROP的Bash命令 SQL 命令。除非您有数据库表的副本(备份),否则您将丢失所有数据。

rm -rf 是一个命令,在没有 root 权限的情况下调用该命令将删除用户有权访问的所有文件夹。当以root权限调用时,它会清除你的硬盘。

我之前在生产服务器上运行这段代码的错误并不是不幸的,但并不是每个人都那么幸运。这里有一些有趣的rm -rf 你可能会觉得相关的故事。

1。 Thomas 和基于 CLI 的垃圾程序

Thomas在他的College Unix实验室从事期中项目,为此他使用连接到相邻实验室的服务器PuTTY + RealVNC.

他的项目很简单:创建一个“trash”CLI 程序,它获取文件路径列表并将它们移动到 ~/.trash目录。然后你可以“empty the trash”在目录上执行rm。他完成了第一部分,正在完成空命令。

他以某种方式设置了错误的变量,该变量将删除路径保留为/,并且他具有sudo 访问权限。他一开始运行代码时什么也没发生,但不久之后就出现故障并开始显示静态。 Ctrl + C没办法。接下来,显示器一片空白,断开连接。

His code run a sudo rm-rf / 擦除服务器上的所有数据。幸运的是Thomas,他正在部门的测试服务器上工作,能够从备份磁盘恢复数据。他没有被录取

2。在备份会话期间彻底擦除

Alex是一家公司的网络管理员,该公司通过脚本备份他们的机器。在一个决定性的Friday 上,他将脚本升级为rm -rf ${DIRECTERY}/ 而不是rm -rf ${DIRECTORY}/ – 使命令更新为rm-rf 因为${DIRECTERY}变成了一个空字符串。

备份会话在那天晚上晚些时候开始,在亚历克斯知道之前,网络上的所有机器都被擦干净了!对他来说幸运的是,公司每小时备份一次文件,因此没有造成太大损失。尽管如此,这是一个忙碌的周末。具有讽刺意味的是,备份工作会将系统擦除干净,对吧?

3。自动递归清理器

有一次Eric在文件服务器上工作,希望每周左右自动清理一些文件。他计划并测试了他的生产线,目的是只删除相对较旧的文件。他的工作在一个目录中,因此他认为不会出现任何问题。嗯,后来他发现自己猜错了

他运行了以下命令并且成功了。接下来,他在 crontab 中手动添加了这行,这时他错误地将. 替换为/ .

 寻找 。 -type f -name-ctime -60 -exec rm -rf {} \;

快进到一周后,大量文件都不见了。更糟糕的是,他们被删除的方式似乎是随机模式,所以他认为公司被黑客入侵,直到他运行代码检查并意识到他是黑客。

幸运的是,他每天都有外部备份,所以他能够修复他的错误。从那天起你可以打赌他对他以管理员权限运行的命令非常小心。

上述故事中存在的 2 个主要要点是 1,始终仔细检查您的代码及其可能产生的结果,以及 2,始终保持备份尽可能最新,因为您永远不知道何时他们会派上用场的。

你从经验或其他地方知道任何疯狂的rm -rf故事吗?在评论区与我们分享。