rm -rf/ 又引发了一个血案

Marco Marsala是一家小型主机托管公司的老板,但是他最近遇到了一个天大的麻烦——由于脚本错误,他不慎删光了所有客户的数据。更糟糕的是,由于Bash脚本代码中包含了一行变量未定义的“rm -rf {foo}/{bar}”,连备份也连带着被干掉了——而在通常情况下,备份网络理应和正常的生产力基础设施隔离开的。

这一错误源自 Ansible 上糟糕的代码设计,这款 Linux 实用工具被用于在多台不同服务器上自动执行脚本。

开发者解释到,实际参数应该是“rm -rf {foo}/{bar}”,foo 和 bar 是脚本中动态传递的两个变量。

然而由于变量处理出错,通用语法未能成功在 bash 命令中插值,所以最终指令就变成了可怕的“rm -rf /”。

“rm -rf/”意味着擦除根路径“/”下挂载的所有内容而无需询问。

鉴于 Marsala 运行着 1535 个集群,其本来是能够在数小时(至数日)内恢复的。但由于未能妥善实现生产环境和备份环境的隔离,备份档也全没了。

不得已之下,他只能上网发帖求救,然而没人能救得了他了。当然,也许最好的建议是给律师打个电话,那样或许还不至于赔得太惨。

本文文字及图片出自 www.cnbeta.com

余下全文(1/3)
分享这篇文章:

请关注我们:

共有 3 条讨论

  1. This a joke…
    据说这人为了写书,观察大家的反应,而最终没有人发现,
    Linux下要执行这段代码时,需要加确认项,否则将无法执行成功。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注