程序员成长野史:从删库到跑路

程序员最喜爱的运动是什么?

小渡认为,一定是跑步,上到19岁的实习鲜肉程序员,下到49的中年程序员,跑步都是程序员在学会编程前的第一步,毕竟程序员的发展史可以简单粗暴的概括为“程序员:从入门到删库到跑路”。

有人在知乎上提问:程序员不小心删库是一种怎样的体验?网友:还体验,赶快跑路啊!

删库对于程序员来讲,是原子弹一样的存在,恢弘壮丽,又象征着绝望。

北京一软件工程师离职后因公司未能如期结清工资,便利用其在所设计的网站中安插的后门文件将网站源代码全部删除,结果因破坏计算机信息系统罪而获刑五年......

IT界的有一个老梗,一次某论坛的数据库管理员抱怨自己老板一直虐待他,结果他一气之下就删库跑路了……

2017年6月,一家荷兰海牙的云主机商verelox.com,一名前任管理员删光了该公司所有客户的数据,并且擦除了大多数服务器上面的内容。

最终导致 Verelox暂时将网络下线。在发布的官方公告中,Verelox表示一直努力恢复数据,但遗憾的是,目前已丢失的所有数据可能恢复不了了。

工资低、待遇差这些都是主观删库的理由,如果在服务器维护的时候不小心执行了rm-rf 命令,结果可能是……

rm-rf命令到底有何种神奇魔力呢?

通常这个命令都是指定文件夹用的,比如:rm-rf /home/test/,就是删除/home/test/这个文件夹下面的所有东西,但是如果后面的文件夹路径没有加对,rm-rf / 在服务器上也就意味着删库了。

俗话说的好:常在河边走,哪能不湿鞋。那该怎么避免这种悲剧的发生呢?

一个方案就是重定向rm命令以嫁接为mv命令,相当于给Linux系统定制了一个回收站。

实现方式如下:

最后将上述脚本写入/etc/bashrc,并立即执行命令source/etc/bashrc 即刻生效。

如果每个程序员都能学会这门操作,世界将会变成美好的人间,下列悲剧也就不会发生了。

近日,据@首席内幕官爆料,游戏公司螃蟹网络的一则公告称,螃蟹网络的一款游戏在上线测试当天,遭后端主程序员锁死服务器与电脑,拒不交接工作,最终导致600万元资金的项目失败。

告全体同仁书声泪俱下,令人扼腕。

一同曝光的还有一份“关于燕飞宏的补充声明”,声明中透露该员工为此项目的主程序员,是公司创始人的老乡兼校友,花4万的月薪高薪聘请,出于信任还让其出任技术总监。

事发当天,公司要开一个紧急会议,这名程序员以正在修bug为由,多次拒绝会议邀请,负责人亲自邀请,仍然不理不睬。双方发生争执后,摔键盘走人,最后锁死程序库,整个公司的两年心血就这样没了。

代码清库的惨案随时都在发生,责任人不仅可能是不靠谱的程序员,始作俑者还可能是AI,程序员心中窃喜,终于能把锅推到人工智能身上了,这才是AI的最大意义!

近日,美国最大点评网站Yelp的工程师训练的神经网络闯祸了。他们训练了一个用来消除bug的神经网络,果然AI没有让人失望,它彻底清除了数据库!

这种斩草除根的方法着实让人感叹:纳尼,还有这种操作?!不禁让小渡想起那个段子,“我心善,见不得穷人,于是把自己目之所及的穷人全赶走了。”

另一方面也反映程序员天天找bug是多糟心的一件事,给人工智能都逼疯了,索性全删除谁也别活。

Yelp团队在APP中向近期可能感到体验不畅的各位用户致歉,该团队还表示,他们将不得不进行回滚(Rollback)。

那么什么是回滚?

回滚指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。回滚对程序员意味着非常严重的失误,所以回滚次数往往与程序员的薪金直接联系,主流互联网公司通常都将回滚定位为最严重的事故。

顺丰科技数据中心的程序员因误删生产数据库,导致某项服务无法使用并持续590分钟的悲剧还历历在目。

来自@大佬坊间八卦微博

起因是在接收到变更需求后,邓某在操作过程中,错选了RUSS数据库,打算删除执行的SQL。

在选定删除时,因其操作不严谨,光标回跳到RUSS库的实例,在未看清所选内容的情况下,便通过delete执行删除,同时邓某忽略了弹窗提醒,直接回车,导致RUSS生产数据库被删掉。

因运维工作人员不严谨的操作,导致OMCS运营监控管控系统发生故障,该系统上临时车险发车功能无法使用并持续了约590分钟。

2017年2月,GitLab的一位系统管理员在给线上数据库做负载均衡工作时,遭受了DDoS攻击。

在阻止了攻击之后,运维人员发现了数据库不同步的问题,便开始修复,在修复过程中,错误地在生产环境上执行了数据库目录删除命令:

导致300GB数据被删成4.5G,GitLab被迫下线。还好还好,没有全部删,还留了一个零头。

2017年9月,某IT大厂技术工程师帮助广西移动进行扩容割接(即增加系统容量)时,不小心将HSS设备里面的用户数据格式化删除,导致广西移动近80万用户数据丢失。

很多网友还提出了许多可行性建议:

“库都删了,不跑路干什么?”

“记得看好地图,搭载飞机跑路,否则或因堵车,短短几分钟之内你就会被抓回了”

“首先,不要选动车,要选最近的一班飞机,尽快出国,能走高速走高速,不然选人少的路线。

“我们程序员都是常备护照的。切记,注意看高德地图实时路况。我们有个前辈就是删库之后开车就上二环,下午五点钟。警察到的时候他还堵在路上。”

玩笑归玩笑,无数先辈的血泪教训告诉程序员们都应该在日常Coding时严加注意操作规范,铭记“一失手成千古恨”的后果。

最好找同事review一下,如果不得不有些操作需要夜间一个人搞,那么一定要提前列好战斗准备,包括:

1.梳理具体的执行步骤、执行命令和每个步骤的预计结果。

2.如果某些步骤出错,是否要求回滚、预先制定回滚方案。

详细记录执行记录,每一步都要有反馈。

3.事先梳理好收尾工作。

4.强关联业务要事先通知,考虑到时间段和别的业务高峰,尽量让对方也安排人留守观察。

5.一定要严格按照步骤来进行操作,宁愿延期,不要加戏。

在审查时也要做好自动容灾、数据同步的步骤,最后,重要的事情说三遍,不要忘记:

备份!

备份!

备份!

最近微信改版了

大家记得把【Duing】设置成星标哦

这样才不会错过消息!

小伙伴们,你们还想看什么类型、题材的文章?或者在学习前端过程中有哪些痛点呢?欢迎在图文下方给小渡留言,小渡会筛选出共性问题,或呼声最高的类型文章,手动联系业内大牛帮你约稿哦~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190124B0GZWB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券