这个程序员一行代码就把整个公司都删没了
我只能说没有比这个更悲伤的事情了。😂
这个程序员叫做:Marco Marsala,他运营一家小型的主机托管公司,已经为1500多个客户提供服务器和网站托管业务,对于一个程序员兼系统管理员来说,还算运营的不错。
不过他最近遇到了一个天大的麻烦,不小心运行了一行代码,把客户所有数据都删完了,并且运行这个命令的时候,那个备份硬盘和他操作的服务器是联通状态,所以顺利实现双杀,备份文件也都消失了,这样他就一行代码就把整个公司都删没了。
wtf
他运营的代码脚本一个 Bash 脚本,里面有一行“rm -rf {foo}/{bar}”命令,我们来解释一下这个命令的意思,让你来了解一下Marco Marsala悲剧的来源:
rm是Linux系统的删除命令,这里用到两个参数:
- -r是recursive(递归),意思是如果要删除文件夹里面还有文件夹,就会先删除文件夹,就是说要删除的东西里面有文件夹必须要使用-r。
- -f是force(强制),意思是直接删除,不用返回确认删除的信息。
然后 {foo}/{bar} 是用来指定要删除的文件夹和文件,问题就是出现这里,因为这 {foo}/{bar} 是脚本中动态传递的两个变量,正常情况下,如果脚本传递成功,就只是删除 {foo}/{bar} 这个文件夹或者文件。
但是由于变量处理出错,所以最终指令就变成了可怕的“rm -rf /”,“rm -rf/”意味着无需确认删除服务器根目录“/”下的所有内容。😂
问题到这一步还不算最悲剧,因为他还有备份,但是运行这个命令的时候,备份硬盘和他操作的服务器是联通状态,所以顺利实现双杀,备份文件也都消失了,这样他就一行代码就把整个公司都删没了。😂
不得已之下,他只能上网发帖求救,然而没人能救得了他了,也许最好的建议是给律师打个电话,那样或许还不至于赔得太惨。
而他倒霉的客户们只能依靠他们自己的备份数据来疗伤了,而且他们还得为自己的网站重新寻找服务提供商。
扫一扫一键关注科技珠峰