笔者是运维工程师,对Linux方面有点心得,现在说一下需要掌握哪方面的工具吧。说到工具,在行外可以说是技能,在行内我们一般称之为工具,就是运维必须要掌握的工具。我就大概列出这几方面,这样入门就基本没有问题了。
Linux系统如果是学习可以选用Redhat或者CentOS,特别是CentOS在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用。
- 系统基础
这个不用说了,基础中的基础,连这个都不会就别干了,参考书籍,可以看看鸟哥Linux基础篇,至少要掌握这书60%内容,没有必要全部掌握,但是基本命令总得会吧。 - 网络服务
服务有很多种,每个公司用的服务也不相同,但基础的服务肯定需要掌握,如FTP/DNS/SAMBA,这几个大概学一下就行,LAMP和LNMP都是必须要熟练,我所指的不是光会搭建,而是要很熟悉里面配置才行,因为公司最关键的绝对是WEB服务,所以nginx和apache要熟悉,特别是nginx一定要很熟悉才行,并且有些公司还会用tomcat,这个也最好学一下。其它的网络服务方面不用太担心,一般公司的环境都已经搭建好了,就算有新服务器或让你整改,公司也会有相应的文档让你参照,不会让你乱来,但至少相关配置一定要学熟,而且肯定是编译安装多,那些模块要熟悉下他的作用,特别是php那些模块。
这上面的两点只是基础,也是必要条件,不能说是工具,以下才是真正要掌握的工具。 - shell脚本和另外一个脚本语言
shell是运维工程师必须具备的,不懂这个连入职都不行,至少要写出一些系统管理脚本,最简单也得写个监控CPU,内存比率脚本,这是最最最基本了,不要以为会写那些猜数字和计算什么数的,这些都没什么作用,只作学习意义,写系统脚本才是最有意义的,而另一个脚本语言是可选的,一般是3P,即python/perl和php,php就不需要考虑了,除非你想要做开发,个人建议学python会比较好,易实现自动化运维,perl是文本处理很强大的,反正这两个学一个就可以了。 - sed以及awk工具
必须要掌握的,在掌握这两个工具同时,还需要掌握正则表达式,这个就痛苦了,正则是最难学的表达式,但结合到sed和awk中会很强大,在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到的,所以学第3点就会顺便学第4点。 - 文本处理命令
sort/tr/cut/paste/uniq/tee等,必学,也是结合第3点一起学习的。 - mysql数据库
首选mysql数据库,别问我为什么不学sqlserver和oracle数据库,因为Linux用得最多绝对是mysql数据库,增删改查必学,特别要学熟查,其它方面可能不太需要,因为运维工程师使用最多还是查,其它的优化和开发语句不会让你弄的。 - iptables防火墙
不学不行,防火墙也算是一个难点,说难不难,说易不易,最重要要弄懂规则,如果学过CCNA的朋友们可能会比较好学,因为iptables中也有NAT表,原理是一样的,而FILTER表是用得最多,反正不学就肯定不合格。 - 监控工具
十分十分重要,个人建议,最好学下这3个cacti/nagios/zabbix,企业用得最多应该是nagios 和zabbix,反正都学学吧,但nagios会有点难,因为会涉及到用脚本写自动监控,那个地方很难。 - 集群以及热备
这个很重要的,且肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰,集群工具有很多种,最好学的是LVS,这是必学,最好也学学nginx集群,反向代理,还有热备,这个就有更多工具能实现了,像我公司是自己开发热备工具的,mysql热备也要学,就是主从复制,这个别告诉我容易,其实不容易的,想要学懂整个流程一点也不容易,只照着做根本没有意义。 - 数据备份
不学不行,工具有很多种,但至少要把RAID原理弄懂,特别是企业最常用的10,自己做实验也要弄出来,备份的工具有很多,如tar/dump/rsync,最好多了解下。
以上就是踏入Linux运维行业需要掌握的工具,其实还有很多工具要掌握的,但你在学习的环境中是很难学到,最后再提醒一下,这里所指的工具相当于技能,而不是像windows或ubuntu那些图形化工具。还有,想学好Linux就不要装图形界面,尽量在纯命令的界面中操作,而且绝对不建议在真机上安装Linux系统,这样根本达不到学习的效果。