您的位置:首页 > 运维架构 > Linux

关于成为linux运维工程师需要掌握的技能

2015-04-15 15:52 323 查看

关于成为linux运维工程师需要掌握的技能

此文转自51cto论坛大神---dililand
转载目的是怕以后自己要看找不到此博文了,感觉讲得很好,很到位,作为自己走Linux运维这条路的一盏指路明灯。
第一版说了该具备的基础:
1、linux系统基础,这个不用说了,是基础中的基础,连这个都不会就别干了,参考书籍,可以看鸟哥linux基础篇,至少要掌握这书60%内容,没必须全部掌握,但基本命令总得会吧
2、网络服务,服务有很多种,每间公司都会用到不同的,但基础的服务肯定要掌握,如FTP, DNS,SAMBA, 邮件, 这几个大概学一下就行,LAMP和LNMP是必须要熟练,我所指的不是光光会搭建,而是要很熟悉里面的相当配置才行,因为公司最关键的绝对是WEB服务器,所以nginx和apache要熟悉,特别是nginx一定要很熟悉才行,至少有些公司还会用tomcat,这个也最好学一下。其实网络服务方面不用太担心,一般公司的环境都已经搭建好,就算有新服务器或让你整改,公司会有相应的文档让你参照来弄,不会让你乱来的,但至少相关的配置一定要学熟,而且肯定是编译安装多,那些模块要熟悉一下他的作用,特别是PHP那些模块。
这面2点只是基础,也是必要条件,不能说是工具,下以才是真正的要掌握的工具。
3、shell脚本和另一个脚本语言,shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些系统管理脚本,最简单也得写个监控CPU,内存比率的脚本吧,这是最最最基本了,别以为会写那些猜数字和计算什么数的,这些没什么作用,只作学习意义,写系统脚本才是最有意义,而另一个脚本语言是可选的,一般是3P,即python, perl和php,php就不需要考虑了,除非你要做开发,我个人建议学python会比较好,难实现自动化运维,perl是文本处理很强大,反正这两个学一个就行了。
4、sed和awk工具,必须要掌握,在掌握这两个工具同时,还要掌握正则表达式,这个就痛苦了,正则是最难学的表达式,但结合到sed和awk中会很强大,在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到的,所以学第3点就会顺便学第4点。
5、文本处理命令,sort , tr , cut, paste, uniq, tee等,必学,也是结合第3点时一并学习的。
6、数据库,首选mysql,别问我为什么不学sqlserver和oracle,因为linux用得最多绝对是mysql,增删改查必学,特别要学熟查,其它方面可能不太需要,因为运维人员使用最多还是查,哪些优化和开发语句不会让你弄的。
7、防火墙,不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则,如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而FILTER表用得最多,反正不学就肯定不合格。
8、监控工具,十分十分重要,我个人建议,最好学这3个,cacti,nagios,zibbix,企业用得最多应该是nagios和 zibbix,反正都学吧,但nagios会有点难,因为会涉及到用脚本写自动监控,那个地方很难。
9、集群和热备,这个很重要,肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰,集群工具有很多,最好学是LVS,这是必学,最好也学学nginx集群,反向代理,还有热备,这个就更多工具能实现了,像我公司是自己开发热备工具的,mysql热备也要学,就是主从复制,这个别告诉我容易,其实不容易的,要学懂整个流程一点也不容易,只照着做根本没意思。
10、数据备份,不学不行,工具有很多,但至少要把RAID的原理弄懂,特别是企业最常用的1+0或0+1,自己做实验也要弄出来,备份工具有很多,如tar, dump, rsync等,最好多了解一下。

大神还写了第二版算是进阶的估计我要几年后才能做到了:
一共四大方面:1、排错;2、优化;3、数据库;4、开发语言,第5必须的,就是运维意识,相当重要

第1点和第2点都需要经验去支持,这个没经验你根本不知道排错和优化是怎么搞,在学校和培训机构各种吹虚里,根本就不可能掌握到,这不是说你安装什么软件时遇到错误能解决那些,那种虽然也叫排错,但只是基础级别,真正的排错是指平台出故障,让你去分析与处理,而出现的错误会各式各样,而且涉及的范围也很广,所以这个是需要经验去支持的。

第2点优化更是个大问题,基本没经验是弄不了,别以为培训机构会教1-2天优化课程就掌握了这技术,这是不可能的,优化可以说是运维最吃香的技能,但也是最高难度的,因为涉及的知识面很广而且还需要很深入了解,优化是有风险,不是随便在网上搜个文章对着改一下配置文件参数或系统参数就优化了,这是乱来有风险的,甚至怎么样才算有效优化,我也不想说,因为对于没入行的人来说是很难去理解。

第3点数据库,也是运维加工资的重要核心技能,有些公司的运维可能接触不到数据库,其实运维的加工资技能要么就是开发,要么就是数据库,如果这2点都不会,那么就是个比网管高级点的打杂罢了,相对于数据库来说,运维的操作还是会有的,而且还昔昔相关,一但操作失误又无法回滚,你就真的要滚回家了。

第4点开发语言,就是上面所说的,要懂PYTHON或PHP,至于学这个干麻,这个我也不好说,要解释又一大段话,只能说现在都存在这个需求,特别是python,你会发现公司招聘时有这个需求,但真正工作时又不需要用,其实不是这个意思,python是自己想用就用,而不是公司要求你用,例如你去完成一个很麻烦的操作,而shell可能无法满足你或者效率很低,那么你就需要用python去满足,这是自己需求使用的,跟公司无关,但就能体现出你的价值了。

而第5点是每个运维都必须的,意识是很重要,并不是你技术很牛,学的技术很多很熟,就不代表你不需要运维意识,其实领导很看重运维意识的,例如有没有做好备份,权限分配问题,平台测试情况,故障响应时间等,这些都是意识,而不是你学了很多技术自认大牛了,平台发现故障你又没什么大不子,以为很简单的问题喜欢处理就处理,不需要向其它部门反馈等,领导不是看你的技术如何,而是看你的运维意识如何,你没运维意识,技术再牛也没用,只会让其它部门的人跟你不协调。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: