运维是干嘛的?安装服务器系统?重装系统再装系统?背锅的?
我就稀里糊涂的,这样报着必死的决心,考下RHCE认证,走上了Linux运维的道路,成为了一名linux运维工程师。有些心得跟大家分享下,避免小白多走冤路。Linux运维必须要掌握的工具,我列出这几方面,这样的话入门就基本没问题。
Linux系统学习可以选用redhat或者centos,特别是centos在企业中用得最多,当然还会有其它版本的,以这两个版本学习就可以,因为你懂的,没什么大区别,有时间可以再研究一下SUSE,比如我的公司就是在使用这个系统。。。。。无论那个Linux系统原理和命令大致是一样的。
建议熟练掌握的工具如下:
1、Linux基础
这个不需要废话,是最基础的基础,如果连这个你都不会就不要干了,可以参考书籍,《Linux就该这么学》https://www.linuxprobe.com/,最好可以完全掌握,因为全书都是讲解的最主要最基础最实用的知识。
2、系统网络服务
Linux服务有很许多,每一个公司使用的业务和服务又不一样,可是基础的服务一定要掌握,例如SAMBA,FTP, DNS,邮件这几个简单学习一下就可以,LAMP和LNMP是必须要熟练掌握,并不是只会简单搭建,是要很熟悉里面的配置,公司基本上都是WEB服务器,nginx和apache要熟悉,尤其是nginx一定要熟悉,有些公司还会用到tomcat,这个最好学一下它。其实网络服务方面不必太过于担心,公司的环境基本上都已搭建好,就算有新服务器或者让你整改,也会有相应的文档让你做来参考,不会让你随便乱来的,相关的服务配置也要学熟,肯定是编译软件安装多,它的模块要熟悉一下,多思考下它的作用,特别是PHP那些模块,以至于到故障出现时有自己的思路。
3、shell脚本和python语言
Linux命令是核心技术,shell是Linux运维工程师必须要学习的,不会这个那你也不可能胜任这项工作,需要能写出一些系统的管理脚本,比如写个监控CPU,内存比率的脚本,这是最基本的,总有人认为写那些猜数字和计算什么数的,没用实际意义,仅仅是学习,其它写系统脚本才是最有意义的。学好python语言可以实现自动化运维,呃,这么火不学都不行。Python不再过多介绍了。
Linux命令大全:https://www.linuxcool.com/
4、awk和swd工具
这两项工具也必须要掌握,还要掌握正则表达式,而正则表达式是最难学的,考虑到sed和awk很强大,往往在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到。
5、数据库
首选mysql,有人会问为什么不学sqlserver或者oracle,这是因为linux用得都是mysql,增删改查必须要学,而且特别要学会查询,其它方面可能需要的不多,我们运维人员使用的最多还是查,而一些优化或者开发语句不会让我们来做。
6、防火墙
防火墙也是个难点,会则不难,最重要的是要弄懂规则,如果你学过思科的CCNA,那你可能会比较容易上手,iptables也有NAT表,它们原理都是一样的,而filter表用得最多,如果你不学肯定不行的。
7、监控工具
以我个人的建议,最好是学这3个,cacti、nagios和zibbix,公司用得最多的还是nagios和 zibbix,其它都学习下吧,nagios可能会有一点难,因为它涉及到用脚本写自动监控。
8、集群和热备
集群和热备非常的重要,必须要懂,到公司就不一定让你去做,因为新手基本不让你碰,集群工具有很多,学会LVS(LVS可以看http://www.linuxprobe.com/chapter-07.html里面的教程),这是必学,最好可以学下nginx集群、反向代理,还有热备,这个就有更多工具可以实现,mysql热备需要学,是主从复制。哎学习的内容真真太多了。。
9、数据备份
数据备份不学不行,要把RAID的原理看懂看透,特别是工作中最常用到的1+0或0+1,就算自己做实验也要做出来,而备份工具有很多,如tar、 dump,、rsync等,最好多了解一下。
如果你掌握了这么多多,基本上都可以找个Linux运维的相关工作,有些技术会比较难学,比如apache和nginx中有一些很重要的技术,如系统调优、服务优化和程序优化,这些都是在工作中才会接触到的,先熟悉shell脚本,你在学习环境中是很难学到,工作才能学习到更有用更有实际意义的技术。工具不等于图形化界面,学习Linux就忘掉Windows系统的操作习惯,使用命令行学习才能真正提升自己,图形化的Linux系统占用系统资源,达不到学习效果。