我是一名linux运维工程师,确切的说是网站运维工程师,从事linux工作有2年多了,对这方面有一些体会,给新手一点借鉴:
首先说下运维种类:有办公网系统运维(就是网管),有IDC外网运维,外网运维里又分网站运维、游戏运维、IDC运维(装系统排障),监控运维(盯着监控)。我强烈建议大家选择linux网站运维路线,这个路线绝对是最好的,会了网站运维了去做别的运维岗位绝对也是信手拈来的,网站运维需要的技术点更多,因此,我以我工作的网站运维岗位说说运维都需要啥。
1、选择linux系统
选择linux系统,建议选用CentOS或redhat,特别是CentOS在互联网企业中用得非常多,当然还会有其它版本的,但初学者还是选择一种学透再换更好,因为centos或redhat这两个版本基本是
一样的,而centos是开源无版权的,选择CentOS建议选择CentOS6.6 x86_64位版本学习,不要选择7,因为7企业里用的还很少,掌握主流就是最好的。
2、必会的linux系统基础
这个是基础中的基础,连这个都不会就别干运维了,必会的linux基础有,100个左右的基础命令(这个老男孩老师总结过,我可以发给大家),除了基础命令外,还需要必会linux三剑客grep,sed,awk,正则表达式,这是必须会的杀手锏,工作效率非常高,面试也很牛,其他基础有:linux系统的启动过程,目录结构,常见配置路径,文件属性,链接知识,目录权限,用户管理,磁盘管理,网络基础(配IP设置路由等),这部分的参考书,可以看鸟哥linux基础篇,如果能看下去的话,之前学习中发现很多初学者看不下去鸟哥,因为鸟哥太啰嗦,有些内容也难于理解,这里给大家推荐一套绝对超值的基础视频,(2015年5-6月最新录制)。
1、手把手带你轻松掌握linux基础入门及进阶
http://edu.51cto.com/pack/view/id-285.html
这里并不是给老师做广告啊,因为我就是这样跟着老师一步步走过来的,觉得这个路线才是绝佳的最快的,大家看看第一部免费的就知道效果了,当然愿意看鸟哥的也可以。不喜勿喷。
3、linux基础网络服务
网络服务非常多并且变化非常快,每个公司都会用到不同的,但基础的网络服务都会用到,如Crond定时任务,RSYNC数据同步,SSH批量管理,批量分发文件,INOTIFY,SERSYNC实时数据同步,NFS网络存储系统。
这里向大家特别推荐,16年经验老鸟手把手带你搭建企业级中小规模网站集群(2015年7月16日录制完),http://edu.51cto.com/pack/view/id-305.html
4、linux核心网络服务
网站运维,当然WEB是核心了,这块需要掌握的有nginx,apache web服务,必须要熟练,对应的组合就是LNMP和LAMP是必须要熟练,我所指的不是光光会简单搭建,而是要很熟悉里面的配置才行,深入了解内部运行机制和原理,因为网站公司最关键的绝对是WEB服务,所以nginx和apache要熟悉,特别是nginx一定要很熟悉才行,有些公司(游戏公司多)还会用tomcat,这个也最好学一下,JVM优化要会最好了。其实这些网络服务方面大家不用太担心,多数公司的环境都已经搭建好了,就算有新环境让你整改或者部署,也会有一定时间的,不过还是提前搞会搞透好一些。
这部分内容网上有各种文档可以学,也可以看官方,但是文档特别乱,确实非常难于系统的学,这里向大家特别推荐,16年经验老鸟手把手带你搭建企业级中小规模网站集群(2015年7月16日录制完),http://edu.51cto.com/pack/view/id-305.html
5、linux网站集群服务
现在的公司多数都会有集群环境,特别是网站公司,大并发高性能是主旋律,要想发展好这些都是必须会的,例如LVS,NGINX,KEEPALIVED集群软件,MEMCACHED,REDIS,这部分老师的视频也有超级好,细腻的视频大家自己去找吧,就不多提了。
lvs:http://edu.51cto.com/course/course_id-607.html
lvs:http://edu.51cto.com/course/course_id-616.html
nginx+keepalived:http://edu.51cto.com/course/course_id-3520.html
memcached:http://edu.51cto.com/course/course_id-3548.html
redis:http://edu.51cto.com/course/course_id-2010.html
有能力的可以自学,不过真不建议自学,自学打击太大。看视频老师带效果好。
6、linux运维必会的编程语言
shell脚本是必会的运维工程师编程语言,不懂这个连入职都不行,至少也要写出一些系统启动脚本,监控磁盘,内存使用率的脚本吧,这是最最最基本了,别以为会写那些猜数字和计算什么数的,那些没什么用,写系统脚本、日志分析脚本、监控系统资源脚本才是最有意义的
这里推荐http://edu.51cto.com/course/course_id-963.html,这套目前是国内唯一深入讲解SHELL的,51CTO的人气也是最高的,免费的就是看bash帮助,ABS等教程。
而另一个脚本语言是可选的,3P之一即可,即python, perl和php,php就不需要考虑了,除非你要做开发,PERL过时了,我个人建议学python最好,实现自动化运维也是趋势把,7月18日,我也开始参加学习老男孩的python自动化运维班了,想了解基础可以看免费简明教程,以及免费的基础http://edu.51cto.com/course/course_id-3029.html,好像只有4金币,很值了。
7、数据库
数据库是所有网络服务里最核心的,必须要学会学好,这里建议首选mysql,别问我为什么不学oracle,因为互联网公司用得最多绝对是MySQL,安装、基础维护命令、主从复制,引擎,备份,恢复,增量恢复,必须要学会,数据库不太好学好,大家可以买几本书学习或者学习老师的
体系课程,我个人建议还是学习视频好一些,毕竟老师讲更易懂,还可以答疑。
入门:http://edu.51cto.com/pack/view/id-220.html
进阶:http://edu.51cto.com/pack/view/id-221.html
深入:http://edu.51cto.com/pack/view/id-222.html
7、防火墙
防火墙,不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则,如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而FILTER表用得最多,反正不学就肯定不合格。,这部分老师的视频也有细腻的视频,就不多提了。
8、监控工具,十分重要,最好学这3个,cacti,nagios,zibbix,企业用得最多应该是nagios和zibbix,反正都学吧
nagios:http://edu.51cto.com/course/course_id-1740.html
zabbix:http://edu.51cto.com/course/course_id-3619.html
以上就是踏入linux网站运维工程师需要掌握的工具,其实还有很多工具要掌握的,还有,学linux一定别装图形界面,这样虚拟机就不用吃太多内存,而且绝对不建议在真机上装linux,根本达不到学习效果,虚拟机学习效果就是最佳的了。
更高级的知识,大家可以看下面链接,不应要报名学习,起码,了解下机构课程知识脉络是不错的,为自己后续自学也是不错的参考。
http://oldboy.blog.51cto.com/2561410/1334659
http://oldboy.blog.51cto.com/2561410/1123127