月份:2017年12月


成功转型并不是没有原因


很早之前在网上搜索linux找到了铭哥的论坛,当时也下载了铭哥分享的课程视频,并照着视频自学了一遍,将所有实验都做了一遍,距离找工作可能也还差点。

就这样过了几个月,工作上不是特别忙了,下定决心转行做专职运维,报名阿铭linux vip课程学习。

和自学相比,有一群小伙伴和你一起学习明显感觉不一样,有不明白的地方可以及时相互讨论解决,更重要的是每天都有安排学习任务,不及时的学习就落后其他同学了,特别是在职平时可能要加会儿班,只能用周末的时间来追上学习进度。

回想那会儿,真有点入魔的感觉,每天下班回来吃完饭,就开始边看视频边做笔记边实验,经常都是十二点多睡,遇到故障排错可能就得凌晨一两点才睡,上下班路上拿出笔记复习,仿佛回到了高考。

下面说说找工作的经历:刚开始投简历出去都没有什么反应,赶紧找铭哥看看是不简历写的有问题,相对来说二、三线城市职位机会少一些,找工作真得有点耐心才行。

参加的所有面试中虽然有笔试的很少,但还是建议看看面试宝典上的试题,特别是脚本、如何看待运维、运维工作内容、处理过的重大故障等,都可以在宝典上找到非常好的答案。

脚本平时一定要多练,至少要掌握思路,有的面试官会直接让你写脚本。对于简历上提到的技术点一定要非常了解,陆陆续续的面试中不断总结再回去看笔记或者动手配置,加深印象,不至于陌生。

另外,几乎没有面试者可以百分之百匹配企业岗位,所以面试中展现自己的学习能力非常重要。

最近入职运维工程师了,算是跨入运维行业了,感谢铭哥带我转行,也感谢自己3个月的付出,越努力,越幸运!祝愿大家都能找到满意的工作。

从野路子转型为专业的Linux运维


之所以这么说,是因为在现在的公司干的比较杂,感觉不算是专业的运维,虽然接触到Linux也比较长的时间了。

先简单说下自己的情况,我是从开发转过来的,因为开发做的时间也不长,由于公司职位的变动,后续阴差阳错的就开始了公司的杂七杂八的系统运维的工作,后期在Aming Linux学些了一段时间,刚开始是想找运维开发的工作,可是运维开发的经验几乎没有,于是在铭哥的建议下,找运维的工作,最后找到的工作后期要整自动化的开发,看来要好好恶补python了。

仔细算下来,接触到 IT 行业已经3年整了,在 dz 公司也默默无闻地待了三年。无论是做开发还是系统运维,都没有哪样能拿得出手的。从去年 11 月份开始正式开始准备学习Linux的各种,主要是通过阿铭Linux来学习系统运维、架构等,到现在也该结束这段旅程了。

写这些东西主要是对这段时间的面试做下总结。说来也不怕大伙笑话,从开始面试到现在,总共面试了五家公司,给 offer 的公司只有一家(囧),也就是现在将要入职的这家公司。

第一家是自如租房的,面试岗位是 Linux 运维工程师,刚开始直接面试结束,谈了挺长时间技术,个人感觉本次面试发挥的还好,面试官比较年轻,问的也不是很深,谈的比较融洽。

问完技术了,他向总监汇报后,看了我的学历是大专,就和我说了他们公司至少要得是本科以上学历,我擦,人事早干啥去了,灰头土脸的就回去了。

第二家公司便是大名鼎鼎的罗胖的公司,没错是罗辑思维,绝对是慕名而去的,大概看了下公司的招聘要求,是招运维开发的,自认为懂点开发和 Python 就不自量力的去面试了。

又是一通打击,面试官是俩人,三十多岁,也算比较亲和,第一句话就说我写的简历太罗嗦,没有重点,给提了些建议。接着开始面试,简历上写的Linux运维开发的经验非常少,自然而然得被强烈鄙视了一把,聊了几分钟就over了,送我走了,不过也有收获,临走还照了张大厅的logo。

第三家是面试的公司名字似乎是叫云校。公司做的是幼儿教育培训的,岗位是Linux高级运维工程师。面试我的是一个中年老男,秃顶,不知道是不是大牛,但至少经历了很多的人。

面试很有重点,awk,sed,grep的询问,当时他说的是三个字母的缩写,根本没想到是是说的这三剑客啊;问了keepalived的原理,vrrp的原理,kvm虚拟化的原理,vlan的含义,大概在看的你也能知道结局有多悲惨了。

当然还问了其它的好多内在底层的东西,给了个评价:我们这是招聘高级运维的,我这也顶多能算个初级的运维吧,还劝我不要做运维了,还是老老实实去做C开发吧。本来纠结的情绪又被他浇了一把火。

第四家是在中关村 E 世界,公司名称是时速云,做 docker 云计算的,冒冒失失的就去了。刚开始面试我的是个老手,问了好多 MySQL的技术,主从的各种问题,虽然有答不上来的问题,但整体回答的还算可以。

不巧,面试官接到了个电话走了,来了个年轻小伙,问了我有没有IDC运维经验,说白了就是问在机房有上架过服务器设备,果断回答没有,然后就没然后了,被打发走了。悲惨呢,还是中午没吃饭去面试的,擦。

第五家,最后一家,也是前天给了 offer 的一家公司,公司名字就不说了,是门户网站的。这次其实面试的时候也没有多大的信心,经过5轮面试官的面试,终于通过了最后的面试,在前天给发了 offer。

其实也没有写多少关于面试中的技术点,就是记录一下流水账,记录自己的面试的几次经历。但是也有收获,对面试也有了新的认识和总结。

1、写好简历,弄懂简历上写的每一条内容。

2、简历内容最好是真实的,如果没有经验,也要事先想好怎么说。

3、准备好自我介绍,感觉这点也很重要。不要指望在面试临场发挥,准备好多个自我介绍的版本,针对不同公司介绍不同的版本。

4、每一项技术点都要弄明白,我说的是你简历上写的专业技能,不能给自己挖坑,比如说精通虚拟化,精通TCP/IP,除非你真的会。

5、如果面试官和你侃侃而谈,而且说的与技术无关的话题,这时候你就要小心了,我就掉过坑了。

6、最好自己整一个个人博客,算是个加分项。

7、即使你没有经验,也要在平时积累点小项目,网上搜罗点小项目,多熟悉练习,成为自己的东西,可以当做自己的实践经验。

8、这点不算,准备想好自己公司的系统架构,即使没有也要编一个出来,参考铭哥论坛上给的一个股票网站的架构。

9、要有自信,其实其它面试的也很菜。

10、总之一句话: 准备 + 总结。

最后说下自己的薪资,16k*12,外加点绩效奖金,不过公司还行,先做一段时间历练历练。先就写这么多吧,上边都写了公司名字,不知道好不好。在这里祝各位暂时还没有找到工作的师兄弟早日找到自己理想的工作。

这个零基础很牛x


我是17年5月左右报名咱们的课程,0基础没有任何经验!

我是一名网管,工作在一家外资企业,虽说薪资待遇在同行看来还算可以,但是安逸和没有任何技术含量的工作让我感觉到岌岌可危!年初离开家,再次来到这个陌生的城市,每次离家出走父母都特别难受(各种叮嘱,各种吧家里好吃的都让我带着),(我母亲尤其是不容易,培养我们两个大学生,每次工作回家都腰疼的不行不舍得花钱去看下!我真的很愧对我的父母!)

毕竟一年也就见面个那么一两次,每次来到这边我都恨我自己为什么别人都可以拿高薪?为什么别人都可以买房子?为什么别人都可以把父母接过来享福?别人可以我也可以!我宁愿拼死在路上,也不愿安逸在现实生活中!

原本以为凭着一口流利的英语和也就那么回事的网管技术,找个1w左右的网管继续干干应该还可以吧,就这样开始各种找,各种投!一天两天一周过去了,仍然没有任何音讯。

之前企业招聘帮我找个小弟,看到很多人投给我的简历,我深有感慨:32,35,最大的38岁我可以理解,可能就是想混混日子吧才要个8k,苏州8k 接近40岁,你打算月月吃土吗?你对得起你的老婆孩子吗?哪些32-35岁的,你们怎么想的?6-8k。。。我真不忍心把他们招过来耽误他们(估计是看重欧美外资了吧)。。

时间来到了4月,我本打算再次学习学习服务器之类的专业,等我再次去网上投投简历(最主要的是看招聘要求),想确认一个方向,只要筛选1w左右的,几乎都是需要会Linux。一不干二不休,周末就去图书馆(我一直坚持到现在,每周都去图书馆)借了几本书。

我算是比较幸运就此开始接触铭哥,那本“让小白和女友都可以学会的linux教程”深深地刺激了我,小白不就是我么。开始学了一个多月吧,一直看到正则。开始有压力,同时也遇到了大家相同的问题,学着后面的忘了前面的,尤其是正则那部分,几乎全部是我凭脑袋死记硬背的!“学习不得法,累死也白搭!”~

时间就这么来到了5月,打算报铭哥的课程,我每月5.2k的房贷。真剩不下多少钱可以再次报名了,可能大家都是一次性付款的,我选择了贷款!因为我知道,未来的我一定会感谢现在的冲动!

顺利加入23期大家庭!铭哥,我不多说了,非常非常的负责任,为了专心培养我们舍弃了腾讯年薪40w的薪资,各种想法设法的搞在线考试系统,联系有条件的同学组成各个“架构组”,我真心的感觉到了我找对地方了。

学习了算是6个月吧,自己的坚持不舍,终究还是还来的一份完美的结果,我第一份真的只是打算去被虐下,让自己知道自己的不足之处,就真的把我要了。

1w转正!我认为在苏州这个薪资还算可以,最起码我算是真正的入门了。

重点是面试的内容,我已经在群内分享了我写的简历。一定要把自己挖的坑填上,一定要把自己挖的坑填上,一定要把自己挖的坑填上。我自己面试自己至少不下于10次吧,我自己也整理了好几套我们所学的架构的原理,优缺点,性能调优等等,不要求你全会,面试的时候总能说上几句吧?

其实我这几天又面试了两家。都给我了offer,昨天的甚至说的现在可以签合同不,薪资1.5w(五险一金全部按照最低来)12个开发(8个java+4个php)线上商城,我面试之后他直接说,嗯你非常适合我们这个职位,经过你说完,我感觉我们线上的这些服务都是单点?

我不想签的原因是(未来就我一个人,而且又TM(允许我使用一次tm)兼职IT的工作!也就是来个人你还得装系统)我tm想想都恶心,装系统,装你妹哇装。。。

三家面试的路子全部都是按照我简历所写来的。小伙伴们,再次提醒,自己挖的坑,埋不上就别去送死!还有三家我全部都让我画了我们公司的架构图!所以面试前一定也要准备好,万无一失,多想想自己的简历是不是还有没有想到的地方?你觉得你还会有压力么?

时光飞逝转眼下年我28,求时光慢些,饶了我那含辛茹苦的父母,拼死3年争取30岁能对得起我自己在家辛苦的父母!时光不老,23期永远不散,我永远都在23期!

iptables,netfilter,firewalld关系


在centos6上,我们用的是iptables服务,而在centos7上,我们用的是firewalld服务。同样的,centos6上安装的是iptables包,而centos7上安装的是firewalld包。

不管是centos6还是centos7,核心其实都是netfilter,netfilter是linux的一个内核模块,iptables命令是linux内核自带的。

centos6上的iptables服务和centos7上的firewalld服务,其实都是用来定义防火墙规则功能的防火墙管理工具。它们都是将定义好的规则交由内核中的netfilter即网络过滤器来读取,从而真正实现防火墙功能,所以其实在配置规则的思路上是完全一致的。

12期老油条曾经走过的路


04年初中未毕业跟着家人从重庆来到广州,干过工厂,发廊,销售,工地,做过兼职,餐厅,酒吧,网吧等等大大小小很多工作。

11年2月到12年2北大青鸟学习IT,第一次接触到Linux,喜欢上了,但是由于中间各种原因没有包括自己当时没给自己做好规划,没有做到这方面的工作,北大青鸟毕业后,在一家IT公司做了三年的电话客服。

15年4月回去重庆发展,不理想,又想起学习东西,来来回回想了很多,中间各种波折,再次选择Linux,通过网络了解很多选择了铭哥。

15年10月中加了铭哥企鹅,拿到一套视频看了后,觉得很合适初级的人学习,于27日报名。

15年12月中旬开始投简历,说实话,本人比较贪玩,包括12期的同学都知道,shell 我不会,脚本我不会,学完lamp果断投简历开始面试。当时想法就是:从面试中去学习,看看那些公司是怎么招聘,看看他们是怎么出面试题,看看他们面试的问题,看看他们给我们的提问。

可能运气比较好,26日面试到一家监控工程师,试用期4.8,转正5.5。当时没想那么多,元旦后正式开始工作,当时想法是以为真的是zabbix这块,去到后才发现,我的工作范围是:每天看着监控服务器zabbix的报错,过滤掉一些邮件和不关紧要的报警邮件。然后就没有其他事情了。

前面说过,当时我比较贪玩,工作后基本就没怎么学习,导致了后面一系列的事情发生。

我记得很清楚,3月底的时候,因为交接工作的时候没有留意,背了黑锅被辞退。

16年4月再次面试一份外包的实施运维,给电信联通做电子发票系统的工作,长期在电信联通工作。工作很简单,服务器上架,环境部署(部署按照文档来操作就可以),部署好后,等着联通电信测试,有问题就看看,没问题就在电信联通无所事事,在这样的情况下,我误入了企图。

在5月到10月初我走入了网赌的道路,学习更没心态。穷到吃不起饭,交不起房租,到处欠账。看到这里各位希望路要走正,堂堂正正的走。

同年的12月在被逼无奈的情况下,返回广州家人身边重新开始工作。

由于之前将近大半年的时间没有学习,回到广州后,面试路上各种碰灰,只有在写面试卷子时候偷偷看手机,面对面试官,只有选择忽悠,和靠自己的真诚去面试。

在连续一周的面试后,15日去了一家公司,当时面试运维,考卷什么的都还OK,比较简单,结果去到上班后发现运维的工作比较少,真的很少,平时就在办公室打机。

浑浑噩噩的3个月想了很多,我有赌债要还,我以后还要家庭,要还我朋友的人情,不想被人看不起。

2月开始就开始从零开始学习。同时将我的简历修改,去掉一些根本没学习的东西,想来好笑简历中我写的很漂亮,什么reids python 虚拟化等等一些根本没接触到的东西写了一大堆,导致前面面试几家公司有两家说我不真诚。回去后开始修改简历,并咨询我做人事的朋友,取消不会的,写上自己会的,和自己的人生规划。

3月中旬重新投简历,面试了大概5家公司,3家通过,一家因为我初中学习没过,另外两家,都要求我去工作,两家的工资都是6K,试用期4.8。一家在大学城,运维有3个,偏向于数据库方向。另外一家就是目前我正在做的,支付平台,运维只有一个。

谈谈我为什么选择支付平台这家。

当时问过老师,菜菜还有曾伟导,给的意见不一样,然后我又在咨询我以前北大青鸟的同学,终于大家的意见我选择支付平台这家的原因,

1、运维只有我一个,学习的东西更多。

2、当时面试有3个运维,而我是唯一一个经历了认识,总监,老板的,老板比较喜欢我

3、根据第一点我觉得在只有我一个人的情况下,压力越大,学习更多

3月27第一天开始工作,由于第一次,真心第一次做到真正的运维工作,导致交接的工作没做好,说到底就是经验不足,4月前任运维离职后,公司出现的问题很茫然,很多事情不知道怎么弄。在这里要谢谢曾伟导,每次出现问题或者不懂的都很耐心帮我解决。

目前在这家公司,其实我自己会的lamp lnmp完全没什么用,能用到的就是nginx而且还不是很熟悉。老板让我在测试机部署hadoop hive base oracle 生产环境要上django,其实这些我都很茫然,完全不会。

每天在公司除了解决一些简单的问题,检测服务器等,其他的时间就是找各种各样的资料去看,百度,谷歌,问人,加群,什么hadoop,oracle,等等到处去问人,甚至老板要我把一亿条的数据弄到mysql中我都不知道,找DBA朋友,找DBA同学,找python的朋友,仍然花了一天的时间才搞定。

在这里我还没去支付平台这家公司上班的时候,再次报名了22期跟班学习,本想学习一段时间工作,谁知道运气来了工作。导致这期间没怎么跟22期同学一起学习。

目前在这家公司工作了一个月7天的时间,虽然第一个不是我到的,每天我都是最后一个走。在这里我学习到很多,特么是工作中的经验这块,一周等于我自己在家里学的两周。我这人比较懒。要我在家学习可能我是没什么心态的。

但这一个多月的时间让我充实满足,每天晚上我都找资料,做实验,了解原理弄到两三点,早上早早的6 7点就起来去公司。刚刚拍拖的女朋友也分手,因为太忙,但是我觉得值得,因为我有了让我更卖力的工作。在我不会那么多东西的情况下,老板仍然选择我,我想他有他的道理,不能辜负了老板的眼光,所以我付出要比别人多。

作为一个12期的老油条,我写下这么多的原因,我想告诉一些朋友,做运维,你付出的要比平时多,不要因为平时的诱惑而放弃,不懂的就要问,不要怕害羞,问了别人告诉你了,那么是你学到的。既然选择了,那么就要坚持走下去。而我作为一个12期的菜鸟,目前开班到22期,虽然是我自己的原因,但我现在又重新回来了。

面试我觉得不要怂,有就去,从面试中大概知道一些公司的面试情况,即使你这个月面试了这家公司,那么有可能下个月还会收到这家的面试,面试把自己会的多说多吹多忽悠,不会的就要说老实话。不要带有隐瞒的性质。多学多问。学到你是的,看不起是别人的,今天他看不起,明天你给他一耳光。加油

在这里真心谢谢老师,曾伟导,菜菜还有同学们。我会继续努力,曾经我丢下的,我会一步一步的捡起来放回自己的口袋。

目标:2018,10K-15K

MySQL延迟主从复制


世界上没有卖后悔药的,一旦做错了,后悔莫及。我们作为运维,尤其是不小心误删除数据库里的数据时,那更是损失巨大。对于MySQL来说,这里有一种方法,可以避免这种悲剧的发生。

这儿所谓的延迟,并不是经常说的网络延迟,而是我们故意把从库复制的步伐放慢,比如让从库比主库慢30分钟。这样,如果在半小时内发现数据有问题,还能补救。

MySQL 5.6 已经支持延迟复制, 可设置备节点的延迟时间, 延迟复制是有意义的,例如防止主节点数据误删,查看数据库历史状态等。

配置也不难,做完主从后,再加上这句:

CHANGE MASTER TO MASTER_DELAY = N;

这里的N单位是秒,这样从库则会比主库延时N秒。做完之后,在show slave status的时候,就可以看到SQL_Delay的值。

SQL_Delay: xxx

三年出纳工作经验的医学生是怎么做运维的


导读:

2016年12月25号,报名
2017年5月24号,收到 offer
多么完美的半年!!哦不,是 5 个月。

背景介绍:

91年,14年毕业,大学专业是 康复治疗学,主要针对各种功能障碍进行功能恢复训练。

毕业之后,在贸易公司工作,做过网站、google SEO、google Adwords。也做过司机、出纳、财务、跟单,全是跟外贸有关的行当,和计算机没半毛钱关系。

至于为什么学Linux,原因和你一样,问问你自己为什么选择这条路,应该八九不离十。

学习方法:

http://ask.apelearn.com/question/16773 ,这个帖子是当时应铭哥要求给大家分享的我的学习方法,我就不多说了,视频里面特别详细,可以去看看。

视频中没有提及的东西:

1 如果你决定了要换工作,如果条件不算太苛刻,那就辞职,专心看课程,给自己压力,家人也会给你压力,破釜沉舟不是没有道理的。

之前看过一个师兄的帖子,辞职专心学习,老婆和长辈都不理解(有没有孩子不记得了),当然你能想象那时候他的压力,但是工作找到之后,老婆和长辈的那些刁难的话,也就无所谓了,老婆和长辈也都理解了。

2 分享你的笔记,不管有没有人看。未必天天都分享笔记,因为理解程度低,可能两天三天才整理一个笔记,但是一旦整理好,还是要分享的。
我分享笔记的初衷很简单,我要盖楼,我要刷屏,整个页面都是你的帖子,不是很爽的事情吗??说白了就是嘚瑟!

3 回复专帖,无论有没有学习!最长记录是连续 71 天,再嘚瑟一下

复习方法:

1 学完之后,自己回顾整理一下每个知识点自己掌握的情况,跟铭哥沟通一下,计划下一步怎么复习,哪些是重点,哪些不是重点。

2 结合笔记再操作一下,听大师兄的建议,有必要可以把笔记重新整理归档一下。

3 扩展部分,不要死磕,特别是你本身没有计算机基础,大牛除外。

4 结合面试宝典复习,里面都是面试官出的题目,同学们一点一滴整理来的。

5 有必要,能画图就画图,一图剩千言

找工作经过

简历写好之后,我的计划是一天投三份简历,不多投,看看招聘要求里面的东西,是不是你都知道(招聘内容里面设计的知识点大部分是你知道的或者见过就可以,无需全部精通)。

如果合适,就把简历投过去,发完三份,就继续去做面试宝典,继续按照你的复习计划去复习。

可能是我比较幸运,5.22 号投的简历,中午接到面试通知,约我下去去面试,我推到了明天去,给自己时间针对公司招聘要求里面的内容复习巩固一下。

另外两家,一家直接拒绝了我的简历(app上拒绝的),还一家过了两天都没回复我。

23 号去面试,整理发型,衣服,喷喷香水( six god ),约的10:30面试,我担心迟到,提取45分钟到了,在楼底下继续复习,继续背资料,还剩10分钟的时候上去的。

说真的,我是真的比较幸运,没有笔试,直接面试(估计是看了我的博客,因为之前有同学说过,看了他的博客直接约面试,免笔试),面试官也没问我特别专业的问题,主要针对个人的职业发展方向聊了聊。

还有就是问我对目前行业的看法,我哪有什么看法,门外汉一个,问我对 php 了解多少,,内心OS:玩我呢!!实际回答:“这个真不了解,您也清楚我没计算机基础,不能骗您,咱实事求是”

后来人事过来聊,那就轻松了,没啥技术性的东西,聊的轻松。临走的时候告诉我第二天回通知结果,我问了一句如果没通过是不是也会通知,人事很爽快,说也会通知。

24号,也就是今天,其实我今天一天没有投简历,也没有复习任何资料,心里惦记着昨天的公司是不是能入职,一点复习的心思都没有,玩了一天的游戏,真的,一点都不想复习,不思进取,就想玩一天游戏,啥也不干!!!

计划是今天颓废一天,让自己有罪恶感,第二天继续努力奋斗。午觉睡醒,两点60分,我有点憋不住了,编辑了短信,想咨询一下有没有通过,因为说好的第二天给回复,为啥都快下班了,还不回复我!!!

短信已经编辑好,每个字都斟酌了一遍,不能没礼貌,不能显得自己特别着急,不能这么没耐性!!!ok,就这样了,发送 ……. 就是这么巧,还没点发送,就来电话了!!!O(∩_∩)O~,。

通话内容简单点,后天入职,底薪7k,试用期3个月,试用期工资6k…………,我没工作经验,没计算机基础,给我这个机会,为何不去!!!说来也巧,五点左右,收到另一家的 hr 的面试邀请,我拒绝了,拒绝的好有底气的,哈哈哈哈哈哈哈

1 包装简历,有工作经验的自然不用说,没工作经验的,又不是计算机专业的,写好之后发给铭哥看看,会给你指导性的意见。多改几遍。

2 简历模板可以去搜五百丁,9 块钱买几个模板,看上去舒服点。PS:别来找我要模板,我也是花钱买的。

3 多下载一些app,搜索 招聘即可

困惑

其实复习的时候真的特别郁闷,心里没底,我一个什么基础都没的,学了半年不到能不能找到工作啊,知识点都不牢靠,IDC 机房都没见过,万一搞砸了咋办,万一被同事鄙视咋办,万一搞了一两个月就被辞退了咋办,辞退了就没工资了,养不活自己,没办法娶媳妇,没孩子,不能让孩子上清华北大,不能不能走向人生巅峰赢取白富美咋办???

咋办,凉拌,硬着头皮走下去!!!没人能开导你,除了你自己。这点困难都克服不了,怎么做隔壁老王,哦不,是热心市民王先生。

做一年运维后


从去年的3月份进入现在的公司,我已经干了一年多了,在这一年多里,我学习到了许多的东西,不过最珍贵还是宝贵的线上运维的经验,我现在也是一名有着实操经验的运维了。

不过慢慢也遇到一些瓶颈,想着换一个工作环境。而且也有一个原因,就是过了一年了,涨薪的事情好像被他们遗忘了一样,都没有提及。这个就更加促使我换工作了。

今年过来,一直都有筹划找工作,断断续续在苏州面试了几家,都不太好,不是我看不上他,就是他无法达到我要求的薪资,总是一对矛盾。

后来,我找铭哥聊了聊,铭哥的建议是直接去上海吧,苏州毕竟是二线城市,上海不同,机会多,待遇也高。考虑再三,决定去上海。

经过一轮又一轮的投简历,等面试。终于有两次面试的邀请,准备了下,去上海面试去。

第一家是蚁城,是一家提供商城解决方案的公司。环境还不错。一面是技术组长,总体来说我表现还不错。

其中一个问题是,有三台web机器,开发只部署了其中一台机器,如何把将代码同步到剩余的web机器上。我的回答是使用rsync 的后台方式,或者ssh 密钥建立三台web机器的信任关系。

接着问我说,还有其他的方式么,我想了下,又给出一个方案,将开发部署的web机器的代码目录通过NFS共享出来,其他的两台机器来挂载。但是,技术组长对这两种方案,好像都不是太满意。

ps:其实,咱们课程里面的有很多解决方案,比如你可以讲铭哥讲过的shell项目《分发系统》,也可以说通过自动化运维工具(salt或者ansible),当然还可以说第三阶段的课程jenkins。

快要结束一面的时候,我问了他一个问题,如果有三台tomcat机器,用户的session如何共享?

他给我的答案是使用阿里云的load balance的session 会话粘连,我又接着问,如果是自己搭建呢,他回答说,可以使用nginx的IP-hash功能,固定的IP会链接到固定的tomcat机器上。

我说这个方案有一个缺点,会导致其中一台tomcat机器负载比较高,因为现有网络的公网IP大都是公用的。

最后,我提了一个方案是,可以使用memcached搭建一个session共享存储层,将三台tomcat机器的session都存储在这个共享层中,而且memcached是nosql,容易横向扩展。

接着就是二面了,是cto来面试的,cto比较nice,先问了对LNMP的架构熟悉么,我心里就在偷笑了,在铭哥的课程里,讲的非常细,我自己在面试前也复习过,所以根本不是问题。这家公司的offer我拿到了,但是因为有更好的选择,我没有选择这家公司。

第二家公司主要是做云计算以及大数据的解决方案的。我面试的部门主要是做大数据,负责给咪咕视频提供大数据的解决方案。但是这家公司会比较特别,三面都是电话面试。

一面是一位来自总部的资深工程师给我面试的,电话聊了1个小时左右,就是聊一些技术,mysql的高可用,redis的高可用,nginx, openresty, django 聊了许多,因为时间比较久了,我也不记得问了我什么问题。但是聊完之后,让我做了一个线下题,以下是线下题:

1. 编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。

2. 给定一个正整数数组,前半段非递减、后半段非递增,要求从小到大不重复打印数字。给定时间复杂度O(n),空间复杂度O(1)

input: Array={1,2,2,3,5,4,2} output: 1 2 3 4 5
input: Array={1,2,2,2} output: 1 2
input: Array={5,3,2,2,2,1} output: 1 2 3 5
input: Array={1,1,1,1,1} output: 1
input: Array={1,2,1} output: 1 2

第一题,我很快就解决了,不过,这第二题,可是把我难坏了。在网上找了许多资料,终于是搞定了。

之后是第二面,第二面也是一位总部的一位资深的工程师。我们主要聊了发布方面的事情,了解什么是灰度发布么?

我的答案是灰度发布就是正式发布生产前,新建一个生产环境,把新的代码部署到新的生产环境,然后通过前面的负载均衡把现有生产环境的一部分流量倒入到新的生产环境,防止新版本的代码出现大的bug导致用户都无法正常使用。

最后是第三面,第三面的面试官是上海的技术总监。他和我说,因为前面已经有两位工程师和你聊过了,那我们就聊聊一些技术上面的细节。

1 生产服务器的磁盘快要满了,你上线查看磁盘使用量,发现了有一个大的log文件,你将这个文件删除了,之后发现文件系统并没有释放这部分空间,是什么原因?

我的答案是,使用这个文件的进程并没有结束,基于Linux系统的特性,被进程占用的文件是不会被释放的,可以使用lsof | grep deleted 来查看有那些文件已经被删除,但是没有被释放的。

解决这个问题的方法有 (1) 结束掉该进程,(2) 如果这个进程不能被结束的话,可以给这个进程发送一个日志轮转的信号。

2 现在有一复杂的分布式系统,他们之间通过api调用去相互联系,A -> B , B->C and D , 这样的系统,让你来选型监控系统,你会选择什么?

我的答案是可以选择prometheus来监控这样的复杂分布式系统。

3 现在研发说线上的服务器卡,你会通过什么方式去排查这种问题?

(1). 我会使用w, top , free,vmstat 查看Linux系统的负载,CPU, 内存,是否存在瓶颈。

(2). 我会使用iostat , iotop 查看磁盘的IO 是否存在瓶颈。

(3). 我会使用sar -n DEV 来分析网络带宽方面是不是存在瓶颈,带宽是不是不够了等原因。

三面结束了,我也顺利拿到offer , 我最终选择去后面这家,不仅仅是因为他们给我13k的薪资,同时也是因为如果我去这里,在技术领域会有更好的发展。

好了,说了这么多,这次的求职分享到这里就该结束了。谢谢!

正则表达式非贪婪匹配


我们学习正则时,用到过贪婪匹配.*
其实,还有一个相对的概念,叫做非贪婪匹配。

如:str=”abcaxc”
  p=”a.*c”
  
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc。
  
非贪婪匹配:就是匹配到结果就好,最少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(a.*c)。

shell中如何区分两种模式?

默认是贪婪模式;
在量词后面直接加上一个问号?就是非贪婪模式。

常用的量词有:

{m,n}: m到n个
*: 任意多个
+: 一个到多个
?: 0或一个

示例:

str=”123abc0axc456″
echo $str|grep ‘a.*c’
结果: 123abc0axc456

echo $str|grep -P ‘a.*?c’
结果: 123abc0axc456


elastic stack 使用redis作为日志缓冲


直接上步骤:

1、首先建立一个配置文件,将output的数据写到redis中,而不是ES了。配置文件示例:

input {
    stdin { }
}
output {
    redis {
        host => "192.168.1.100"  #redis服务器地址
        port => "6379"  #redis服务端口
        db => "5"  #使用redis第五个库,用其他库也可以
        data_type => "list"  #用list类型
        key => "demo"  #存储的key名,可自定义自己喜欢的
    }
}

 

2、指定配置文件然后运行Logstash,然后我们在标准输入中随便写点什么东西,这个时候输入的数据都会提交到redis中。登录redis后使用info命令可以查看keyspace相关信息,可以看到db5的keys数量有了变化,我们切换到db5再来看看

select 5
keys *

 

3、通过keys *命令可以看到有了一个key叫做demo,这个就是配置文件里设置的key名,使用LLEN demo可以看到该key的长度,input如果输入了100行,那么这个key就应该有100行

4、再次建立一个配置文件,这次input是从第一步里的redis里读取数据,然后output到ES中

input {
    redis {
        host => "192.168.1.100"  
        port => "6379"  
        db => "5"  
        data_type => "list"
        key => "demo" 
    }
}
output {
    elasticsearch {
        hosts => ["192.168.0.100:9200"]
        index => "redis-demo-%{+YYYY.MM.dd}"
    }
}

 

5、运行该配置文件后去redis看看,之前的队列因为被output到了ES中,所以队列会消失掉或者是迅速减少长度

下面是一个改造后的配置文件,更符合实际需求

input {
    file {
        path => "/var/log/messages"
        type => "system"
}
output {
    if [type] == "system" {
        redis {
          host => "192.168.1.100"
          port => "6379"
          db => "5" 
          data_type => "list" 
          key => "system"
    }
}