随着互联网技术的发展,Linux运维工程师的需求也越来越大。Linux作为一个全能的操作系统,想彻底了解操作系统的方方面面是不太可能的,短时间内也不太现实。本文中,Linux运维工程师总结了前期必须掌握的内容。可以有针对性的学习和实践,争取早日成为一名优秀的运维工程师。
Linux操作系统的基础知识

作为一名Linux运维工程师,操作系统的基础知识自然是最基础的。操作系统主要负责存储、计算、网络资源的管理和调度,所以运维工程师最重要的工具就是学习这些方面。这些工具分为配置管理和监控查询。
当然,市面上有很多这方面的书籍。有两本书反响很好。一个是波导的Linux私厨系列,一个是UNIX/Linux系统管理技术手册。鸟哥的书建议先看基础版。里面的内容很基础,讲解也很详细。
UNIX/Linux系统管理技术手册是一本非常全面的技术手册,可以作为参考书使用。不仅介绍了Linux的操作系统,还介绍了主流UNIX的配置管理,非常适合运维人员使用。毕竟很多数据中心不仅仅是Linux,还有很多UNIX系统。
网络服务
参与运维的企业多为对外提供服务的企业,多为互联网公司。网络服务是其最重要的服务之一。Linux操作系统上有许多类型的网络服务,如Web服务、共享文件服务和邮件服务。当然,这些只是常见的几类,其实还有很多。
以Web服务为例。通常LAMP和LNMP是必须掌握的。LAMP是一系列软件的简称,即Linux、Apache、MySQL和PHP。而LNMP的n是Nginx的缩写。对于运维人员来说,主要是Apache和Nginx的安装、配置以及故障诊断和修复。
当然,这里有一个具体的例子。因为Linux的网络服务那么多,你要根据自己的工作来选择。具体可参考鸟哥私厨的服务器设置。
命令过程
Linux最大的特点是基于Linux命令行终端控制操作系统。这种方式虽然准入门槛较高,但大大提高了效率。Linux命令行终端最大的特点是可以支持自动处理,即通过Shell脚本批量处理命令。
在日常运维过程中,我们经常需要执行一些命令,很多时候都是一系列的常规命令。这就是使用Shell脚本的时候。例如,如果我们希望监控系统CPU的使用情况,并定期将其记录在一个文本文件中,那么该脚本将派上用场。作为运维工程师,Shell脚本是必须的。

正则表达式和文本处理
运维工程师最常见的工作可能就是分析日志,调整配置文件。这些文件都是文本文件,所以需要学习如何处理文本文件。比如我们需要从海量日志中检索某个关键字符串,或者在日志中减少某段时间的日志,等等。
文本文件分析常用的命令有grep、sort、sed和awk。其中sed和awk特别强大,它们可以使用正则表达式以复杂的方式处理文本。所以,在学习如何使用这些工具的情况下,需要对正则表达式有所了解。对于正则表达式,本文推荐OReilly的《掌握正则表达式》一书。
学习正则表达式不是一蹴而就的,需要在实践中学习。
监控工具
监控工具是运维工程师必须掌握的工具。开源工具有很多,比如cacti,nagios,zibbix。很多大的互联网公司都有自己的监控系统,那就是另一回事了。
为什么要学习监控工具?因为对于大规模的Web服务,我们不能坐等问题发生,甚至不知道问题什么时候发生。而是要在出现问题的时候报警,或者预警。最好在客户察觉之前解决问题。监控工具扮演了这个角色。它通过短信或邮件的方式及时通知运维人员问题,从而修复问题。
集群高可用性
对于关键业务,通常要求7*24小时不间断,即高可用。以某董、某宝为例。如果出现一分钟的业务中断,估计损失几百万甚至上千万。因此,需要通过服务器集群来保证关键服务的高可用性。

Linux操作系统中也有很多开源软件,很多公司也在使用这些软件。比如具有用户负载均衡的LVS和Nginx,为用户提供高可用性的Linux-HA和KeepAlive,以及数据库主、备份软件等。这些软件不一定要精通,但是原理一定要清楚。
数据备份和恢复
这是数据企业的生命。企业如果丢失了数据,离破产就不远了。所以对于运维人员来说,学习数据备份和恢复也是必不可少的。
数据备份的商业软件很多,这里就不赘述了。其实Linux操作系统中有很多备份软件。比如网络存储NFS,可以作为数据的集中备份服务器,可以备份业务服务数据;Rsync工具可以实现数据的差异备份等等。
今天本号总结了Linux运维中必须知道的Linux相关技术和知识点。这里,只是一个参考。希望对刚入门的运维工程师有帮助。另外,为了让大家深入学习,这篇文章推荐的基本都是好书。相信通过不断的学习和实践,你可以成为一名优秀的运维工程师。


