在Linux操作系统下用root权限运行rm -rf /命令对系统管理员来说是一个恶梦。斜杠/代表根分区,rm -rf /命令会删除根分区下的所有目录和文件。在Linux文件系统中,root根分区包含了系统的一切。删除根分区就意味着整个Linux系统被删除。 一位名叫Marco Marsala是一个主机服务商,有1500多位客户。Marsala想运行一个包含rm -rf {foo}/{bar}命令的Bash脚本。但是由于环境变量没有设置好,这条命令实际上就等同于rm -rf /命令。
他说: 我是一个主机服务提供商,有大约1535位客户。我使用Ansible将经营自动化。昨晚我不小心在所有服务器上运行一个包含rm -rf {foo}/{bar}命令的Bash脚本,但在之前的代码中存在一个bug导致没有定义环境变量。 所有服务器Linux系统都被删除了,离线备份也被删除,因为在运行这个脚本前远程存储器是挂载了的。这个脚本是一个备份脚本。
是否有可能恢复硬盘数据? 运行rm -rf /命令后,即使你找信誉最佳的硬盘数据恢复公司,要恢复硬盘数据也相当困难。这将花费大量时间和金钱,对于一个主机服务商更是如此。 后来Marco Marsala说他现在几乎恢复了所有的数据,但没有说明具体的方法和步骤。
我们能从中得到什么教训? 1.要有多个备份 2.不要盲目地从网上下载一个脚本,不懂脚本中的命令就直接运行。 3.在生产服务器使用新技术之前,要在另外的机器上测试新技术。
相关主题 |