本文转载自微信公众号「小姐姐味道」,做者小姐姐养的狗 。转载本文请联系小姐姐味道公众号。html
我对Linux很是的精通,尤为是脚本语言好比sed、awk、python等,用起来更是炉火纯青。我把它做为本身一个很是特立独行的技能,一个和其余普通程序员区别开来的技能。因此在我写脚本的时候,我都会自豪的抬高个人头,鼻孔朝天冥思精悍的code。python
好比,看到别人一遍遍的翻文档安装elasticsearch这个软件,xjjdog就浑身难受,就写了脚原本加快这个过程。程序员
mkdir /data useradd es -d /data/es chown -R es:es /data cat > /etc/security/limits.conf <<EOF * soft nofile 65536 * hard nofile 65536 * soft noproc 65536 * hard noproc 65536 es soft memlock unlimited es hard memlock unlimited EOF cat > /etc/sysctl.conf <<EOF vm.swappiness = 0 vm.max_map_count = 262144 EOF sysctl -p chown -R es:es /opt/elasticsearch
这种脚本可以让我快速知晓软件安装的要点,不须要再读那些冗长的文档。像这样的事情,我老是在作,长此以往,搞的本身好像很闲同样。来看看我之前分享的命令行吧。redis
这几天看到小王一直在那里捣鼓excel,这些数据他已经处理了好几天时间了。客户须要从其余平台迁移到咱们的平台,导出了一堆烂七八糟的数据,大概有三四十MB的样子。不知道怎么回事,清洗数据这个活儿,就落在了小王身上。docker
文件很大,公司的电脑很烂。小王打开以后,电脑的风扇就呼呼直转。他每次都须要使用ctrl+f找到不太正常的数据,而后把它么拷贝到另一个文件中。数据多工期紧,昨天晚上,小王就加班干到23点多,直到夜的尽头。shell
总监对此专门进行了表扬。数据库
我坐在小王的旁边,天然不能对此坐视不理。常年养成的习惯,让我对低效的事情没法忍受,就如同一只常年奔跑的兔子忍受不了缓慢爬行的蜗牛。api
只扫了一眼小王的需求,我就断定这个工期三天的任务,使用脚本只须要2个小时就能完成。我并非乐于助人,实在是我很是的喜欢写这种脚本,还有脚本带来的这种速度差别的快感。缓存
一个小时以后,我把调试好的python脚本交给小王。shell里一运行,正确的文件就出来了。好爽的感受。安全
小王天然对我拜服,逢人便吹xjjdog如何牛x。
这个事情不知怎么就被总监给知道了,我被叫进了宽大的办公室。看到总监一脸阴沉的脸,我知道事情不妙,但并不知道症结所在。我刚入职这家公司,应该没有在不经意间触碰了不应逾越的底线,个人心中充满了迷茫。
“据说你帮小王解决了个问题“ 。总监说, “之后少写这样的东西“。
“为何?“ 我仿佛不太相信本身的耳朵, “脚本能显著的增长工做效率“。
“就知道你会有这样的疑问。“ 总监严肃的脸缓和了下来,和我讲了一个架构师的故事。
小宋曾经是这家公司的架构师。有不少三脚猫的架构师并不写代码,因此小宋成为了能码字的稀缺架构师。他的一个绝活就是写脚本,就像我如今干的事情同样。
脚本能增长效率,这是我多年的经验。但效率这两个字自己,就根本没法衡量。因此效率这两个字,没法被量化。即便你把工期从3天缩减到2个小时,那也不见得你的效率高,由于这只是零散的杂事中的一个小插曲,你省下的时间仍是去摸鱼。你的这些效率,打破了正常的研发周期,也断送了想要拼搏的同窗的梦想。因此, 增长效率 ,这种有实际功效的作法并不能登上大雅之堂,只能在小圈子里乐呵一下,最后只会变成一个口号。
小宋的脚本第一次是用在一个线上事故的处理上。当时,程序有一个BUG,数据库和缓存中一部分数据错乱,产生了不一致的状况。因为缓存分布在20多台机器上,就不能使用把全部缓存给清掉的方式。
业务经理很着急,通过讨论以后,决定开发定时任务,扫描全部的缓存和数据库中全部的记录,而后修正数据。数据量很大,程序也须要验证,估计修复时间至少须要两天。
小宋说,没那么麻烦。你只须要把问题发生期间,全部的业务日志给我就能够了。
接下来的三个小时,小宋从日志里过滤出了问题发生过程当中全部被更新过的key。略一思索,就使用脚本完成了对这一批key的缓存删除操做,很是完美的解决了问题。
这件事以后,小宋就常常被请去写一些脚原本帮助处理疑难问题。他来者不拒,乐此不疲。
一切像是向着良性的方向发展,直到一次线上的故障。
公司的几百台机器,都是在aws平台上的ec2服务。使用ec2提供的api,能够作不少事情。但ec2的命令实在是太难以理解,因此小宋作了封装。
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html
使用这个脚本,能够对部分、或者全部的机器,进行批量管理(好比加个分组,开个权限等),就不用登录到后台作一些管理工做。每当小宋看到黑屏幕上流淌的字符,他就想,这就是效率的魅力。
脚本很是好用,因而获得了分发。有一个运维拿到了这个脚本,鬼使神差的想要在线上验证一把。
他向全部的机器发送了关闭命令。
公司立马就炸了锅,扯皮的事是不免的。但最后的矛头指向了小宋。
脚本是他写的,但他首先是一个架构师。一个架构师,能够不写代码,能够不出成绩,但必需要有风险意识。
可这些命令,并非我提供的。这是aws平台提供的东西,我对此什么都没有作。去测试这些命令,和用不用这个脚本没有关系。小宋争辩。
但命令确实是经过这个脚本发送出去的,也确实形成了后果。背后那些千回百转的曲折关系,没人会去研究,也没人会关心。那些日常享受小宋脚本的同窗,此时也是默不做声,由于这种责任问题,如同效率问题同样,都是虚张声势,并无明确的结果。
这种事情,小宋也是体验过的。好比提供了redis脚本,有人就喜欢运行FLUSHALL命令;提供了docker命令,有人就喜欢调用docker purge去作清理。这根本控制不住。
他认为,这是使用者的水平问题,而不是他的脚本问题。与总监吵了几架以后,小宋最后一气之下,愤而离职。
他直接删掉了这家公司全部人的好友,消失了。
“因此,我是对你好,才会和你提这样的要求。比起风险来,这点效率带来的提高,真的是微不足道。 讲到这里,总监意味深长的看着我。”我如今就是及时的制止你的行为,免的步小宋的后尘“。
我点点头,这个道理我懂。以前有家公司,就由于以为Linux的学习成本大,命令危险,就选择了Window系统作服务器。宁肯难受、付钱买受权、当2B,也不敢越雷池一步。拿着风险两个字挂在嘴边,这些道理都是同样的。
我忽然以为,这么多年个人信仰就要崩溃了。花了那么大的力气,把命令行学精,到最后落到个学无所用,真是悲哀。
“总监,很差了。 ,正在我想要表达些什么的时候,有个小伙子闯了进来, “线上有人使用ansible练手,把根目录的权限所有改为000了!“。
个人脑子里立马出现了这样的命令,此次锅是linus torvalds的了。
chmod -R 000 /
谁知道总监笑了。“你刚来,不了解这里的状况。这个月已经发生好几回这样的事了。是时候换安全可靠的Windows了,我认识采购的人。”
我微笑着点头,不置能否,但虚心受教。
我灰溜溜回到本身的工位,长叹一声,删光了公司全部的人。
今天就提交辞呈吧,毕竟,公司是找不到linus torvalds的,但能找到我。毕竟,ansible这个工具,是我前几天刚给推荐的。
因此,若是架构师是你,你会留下什么脚本呢?
做者简介:小姐姐味道 (xjjdog),一个不容许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不同的味道。个人我的微信xjjdog0,欢迎添加好友,进一步交流。
【编辑推荐】
【责任编辑:武晓燕 TEL:(010)68476606】