回到顶部
您的当前位置: 程序人生
命令错误导致数据尽失 这锅该谁背?
2016-08-29 09:03:58
标签: 转载 命令错误 数据尽失

无论在异次元空间中,还是在真实的世界里,有能力创造价值的人,往往也有能力去毁灭这个价值。

在软件定义的世界里,程序员往往扮演了一个创造价值的人。而有些人却也因为无心之失成为这些价值或者数据的毁灭者,也有人因为一个乌龙指(手误)造成不可挽回的损失。

01.jpg

在十年前的日本,曾经发生过一件因为乌龙指致使“以61万日元的价格,卖出1股J-Com的股票”错误的写成了“以每股1日元的价格,卖出61万股”(如上图)。导致瑞穗证券损失了约270亿日元,而这次乌龙引起的市场震动,还不仅仅这一家,很多证券公司都受到牵连。而瑞穗证券也因为最后的现金交割让其所遭受的损失扩大到400亿日元!

这样一个真实的故事不仅给当事企业带来压力,对于程序员而言,也不得不负起相应的责任。

无独有偶,今年又有一家小型主机托管公司遇到了相似的事件,因为脚本错误,Marco Marsala不慎删光了客户的所有数据。

事情的缘由在于,实际参数应该是“rm -rf foo/bar”,foo和bar是脚本中动态传递的两个变量。然而由于变量处理出错,通用语法未能成功在bash命令中插值,所以最终指令就变成了可怕的“rm -rf/”。

02.jpg

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

事已至此,这家小型主机托管公司已是叫天天不应叫地地不灵。

综上两个故事告诉我们,第一:备份数据要与生产环境脱离,这样即使出现故障,备份数据也不会丢失。第二:入行需谨慎,并不排除程序员需要为自己的Bug承担责任的可能性。

最后,请大家慎用rm -rf/命令,虽然部分系统是可以收到提示的,但是一旦命令执行,就回天无力了……

读后感言

两个事情,测试测试测试,备份备份备份。