Linux高手分享的7道经典面试题,秒拿offer的技巧跟大家分享一下Linuxer的面试心得:首先,猎头或者公司人力资源会把公司介绍和职位要求发到你的邮箱(或者QQ,微信)。以下是猎头给我的职位描述。为了职业道德,我就不贴公司介绍和面试通知信息了,但是贴一下职位要求:职位描述:1.负责应用服务器的安装、配置、优化和维护;2、负责应用系统Log信息的备份、管理、维护和分析;3、负责应用系统的日常监控维护、故障排除、性能分析和优化;4、负责应用部署系统、环境配置系统、监控系统的开发、部署、升级和维护,搭建高性能运维平台。岗位要求:1、熟悉Linux操作系统基础知识,熟练使用Linux常用操作命令;2.精通Nginx、HAproxy等应用相关软件的部署、配置、优化和维护;3、熟悉网络基础知识和TCP/IP4、熟悉shell/perl/python中的一种或多种开发运维程序;5、熟悉Nagios、Ganglia等监控软件是不是觉得以上要求不高?仔细一看,你会发现这家公司需要的东西很多,不仅是网络知识(熟悉TCP/IP好像每个单位都写的)要求),还要培养技能。相信很多做运维的兄弟在网络方面很头疼,对交换机、路由器的配置和管理不是很好。重点来了,就是和面试官的沟通。有笔试的公司会要求你做一些面试题。如果没有笔试,可以直接和面试官聊天。下面是我和面试官交流后想起来的一些问题。分享给大家看看,作者一共背了7道题,还有两题记不住。如果大家有更合适的答案一定要贴出来一起讨论共同提高:1.介绍一下你自己?(几乎每个公司都会让你先自我介绍,好像是必修课一样)答:作者自我介绍这里省略,作者建议自我介绍时间不要太长,3-4分钟是合适的,太多了面试官会觉得你太罗嗦了。说得太少也不行,因为这样会让人觉得你的经历太简单太空洞。一般情况下,当你在自我介绍的时候,面试官此时正在看你的简历。他需要边看你的简历边听你自我介绍。如果你三言两语就自我介绍完了,他肯定还没回过神来,给你的形象扣分。引子的同时思路要清晰,逻辑要清晰。最好根据简历上写的经历来介绍,这样可以把面试官的思路带给你,让他跟着你走。不要谈论这个和那个。尽量少介绍自己的性格和爱好(不想说就别说),可以简单列出几个曾经工作过的公司(最多列出3家/包括现在的公司)公司,注意顺序不要乱),都在那些公司负责什么工作,用过什么技术?我会重点介绍你现在的公司负责什么样的工作。可以介绍的详细一点,免得面试官看晕了。2、如何实现灰度发布?答:这个问题之后,在知乎上看到一个网友的建议,觉得还不错。你可以参考一下!仔细想想灰度发布系统要达到什么目的,你基本上就会有答案了。需要注意的是,客户端应用(无论是PC端还是移动端)的灰度发布比Web应用的灰度发布更复杂,因为应用运行在用户手持的终端上,数据采集和回滚更复杂。很难(但可以收集的数据类型更丰富)。注:本人缺乏移动客户端产品经验,以下内容可能不适用于移动客户端产品。我理解的灰度发布系统的主要任务是按照一定的策略从产品用户群中选择一些用户,让他们先体验新版本的应用,并收集这些用户对新版本的明确反馈应用(论坛、微博等)博)或隐式反馈(应用统计),评估新版本应用的功能、性能、稳定性等指标,再决定继续扩大应用范围新版本直到完全升级或回滚到旧版本。从以上描述可以得出灰度发布系统需要具备的一些要素:用户标识用于区分用户,辅助数据统计,保证灰度发布过程中用户体验的连续性(避免用户跳槽)在新旧版本之间,匿名WebApp更容易出现这个问题)。匿名网络应用可以使用IP、cookies等,需要登录的应用可以直接使用应用账号系统。目标用户选择策略是指选择哪些用户先体验新版本,是强制升级还是让用户自主选择。可以考虑的因素很多,包括但不限于地理位置、用户终端特征(如分辨率、性能)、用户特征(性别、年龄、忠诚度等)。对于较小的修改(如文案、少量控件位置调整),可直接强制升级。对于新浪微博改版等大规模升级,应该允许用户自主选择,最好能提供一个回滚到旧版本的通道。对于客户端应用,可以考虑类似Chrome的多渠道升级策略,让用户自主选择稳定、测试、不稳定的渠道版本。用户自己承担风险,并有明确的期望。数据反馈用户数据反馈:在用户许可的情况下,收集用户对新版应用的使用情况。如客户端性能、客户端稳定性、使用次数、使用频率等。用于与旧版本进行比较,决定是继续扩大新版本的范围还是回滚。服务器数据反馈:新版本服务器性能、服务器稳定性等,功能与用户数据反馈类似。新版本回滚策略当新版本的灰度发布表现不佳时,应该回滚到旧版本。对于纯web应用,回滚相对简单。主要难点在于用户数据的无缝切换。对于客户端应用,如果期望用户卸载新版本并安装旧版本,成本和流失率都太高了。可以考虑快速发布新版本,利用升级“回滚”来覆盖上次灰度发布的修改。对于移动客户端来说,发布新版本的成本比较高,需要Appstore和Marketreview。我没有做移动客户端产品的经验,所以不清楚移动客户端产品是如何处理灰度发布和回滚的。但是尽量把客户端做成WebApp,这样会更有利于升级和回滚。(不过苹果对纯WebAppApps的限制比较强,好像不允许这样的应用上架Appstore?)配合公关运营支持,及时处理用户在微博、博客等渠道的“露骨反馈”。比较通过隐式数据反馈得到的结论后,综合考虑应对策略。3.你熟悉Mongodb吗?通常部署多少?答:已经部署了,但是还没有深入研究。一般mongodb部署master-slave,或者mongodbshard集群;建议部署3或5个服务器。MongoDB分片的基本思想是把集合分成小块。这些块分布到若干个分片中,每个分片只负责总数据的一部分。对于客户端来说,不需要知道数据被拆分了,也不需要知道服务端哪个数据分片对应哪个数据。在数据分片之前,需要运行一个路由进程,进程名为mongos。这个路由器知道所有的数据存放在哪里,以及数据和切片的对应关系。对于客户端来说,它只知道连接了一个普通的mongod。在请求数据的过程中,通过路由器上的数据与分片的对应关系,路由到目标数据所在的分片。如果请求有响应,路由器会将其收集起来并发回给客户端。4、如何发布和回滚,如何用jenkins实现?答:发布:Jenkins配置代码路径(SVN或GIT),然后拉取代码并打标签。需要编译的时候编译,编译完成后推送到发布服务器(脚本可以在Jenkins中调整),再从分发服务器分发到业务服务器。回滚:根据版本号,去发布服务器找到对应的版本推送5、Tomcat工作模式?答:Tomcat是一个JSP/Servlet容器。作为一个Servlet容器,它有独立Servlet容器、进程内Servlet容器和进程外Servlet容器三种工作模式。进入Tomcat的请求根据Tomcat的工作模式可以分为以下两类:Tomcat作为应用服务器:请求来自于前端web服务器,可能是Apache、IIS、Nginx等;Tomcat作为独立服务器:请求来自网页浏览6.监控用什么?答:现在公司业务运行在阿里云上。我们最好的监控就是用阿里云来监控。阿里云监控自带ECS、RDS等服务的监控模板,可以结合自定义告警规则触发监控项。.之前公司的业务托管在IDC,使用的是zabbix监控方案。zabbix图形化界面丰富,还自带很多监控模板,尤其是多分区、多网卡的自动发现和监控。很好,但是需要在每个客户端(被监控端)都安装zabbixagent。7.你如何备份数据,包括数据库备份?答:在生产环境中,无论是应用数据还是数据库数据,部署时都会有主从架构,本身就是数据的热备份;其实可以考虑冷备份,使用专用服务器作为备份服务器,例如可以使用rsync+inotify配合定时任务来实现数据的冷备份。如果是发布包备份,一般情况下,有一个发布服务器,每次发布都会保存发布包。总结一下面试要注意的几点:***,简历一定要熟悉,简历上写的技能,一定要能说出一二,因为面试官的很多问题都会选择简历上写的问题。比如你在简历上写了这样一个技能“熟悉mysql数据库的部署、安装及原理”。既然写了这么个技巧,就算不熟悉,也要明白mysql的原理,能说出大概的意思。如果面试官问到你写的item,你答不上来,那么你在他心目中就会失分。基本上这次面试希望不大。第二,不要装懂。如果面试官问你一个你不会的问题,就说你不熟悉,没有详细研究过。不要假装听懂和说一堆没用的话题来掩饰,这样只会让面试官不喜欢你。第三,做好充分准备,尽量多背理论知识。一般来说,面试中问的最多的就是原理。很少有人问具体的配置文件是怎么配置的。面试前,还要了解“职位描述”和“职位要求”。虽然有时候大部分不会问工作要求的问题,但是你也必须了解和熟悉他们。第四,面试结束后,一定要尽可能的总结记住面试官问的每一个问题,回去记录下来。问了不会的问题,要马上查百度或者找朋友搞清楚,这样才能记住。法律,也许在下一次采访中会问同样的问题。
