Linux运维工程师的基本工作之一是搭建相关编程语言的运行环境,使程序能够高效、稳定、安全地在服务器上运行。优秀的Linux运维工程师不但需要拥有架设服务器集群的能力,还需要拥有使用不同的编程语言开发常用的自动化运维工具或平台的能力,从而实现高效运维,提升运维团队整体作战实力,为业务提供强有力的支撑,保障业务和服务7 × 24小时不间断运行。
Linux运维工程师日常工作包括但不限于以下内容。
〓● 自动部署多版本操作系统,如批量部署CentOS 7.7或CentOS 8.0等,并针对不同版本操作系统的参数进行调试和优化。
〓● 部署程序运行环境,如网站后台开发语言采用PHP,搭建Nginx、Apache、MySQL以及PHP运行时所需环境等。
〓● 及时修复操作系统漏洞,防止服务器被攻击,这些漏洞包括Linux操作系统本身的漏洞和各个应用软件的漏洞。
〓● 根据项目需求批量升级软件,如JDK 1.8在性能方面获得了重大突破,如果现阶段服务器压力较大,可以考虑将JDK 1.7升级到JDK 1.8。
〓● 监控服务器运行状态,保障服务持续可用,业务不受宕机影响。服务器宕机后可以实现对业务无感知的集群快速切换,保障业务可持续运营。
〓● 分析系统和业务日志,及时发现服务器或网络存在的慢请求增多和网络超时等问题,第一时间通知相关人员修复和解决相关问题。
〓● 对服务器资源合理规划和精确管理,节省成本,控制预算。
〓● 分析反向代理或负载均衡器的连接数或运行日志,评估服务器性能和用户行为。
〓● 对服务器不断加固,如合理设置防火墙策略,部署入侵检测系统,及时发现可能存在的系统漏洞或系统异常行为。
因此,Linux运维工程师需要熟练掌握Shell编程及相关的自动化运维工具。本章从Shell脚本编程入门开始讲解,带领读者踏上Linux自动化运维之路。
熟练掌握Linux指令的重要性
熟练掌握Linux指令是Linux系统架构师的必备技能之一。Linux相关从业者,尤其是Linux系统管理员和Linux系统架构师,应熟练掌握Linux指令的常用操作,原因如下。
〓● 指令比图形界面更加高效。
〓● 指令可以完成图形界面不能完成的任务,如自动批量部署500台服务器。
〓● 指令比图形界面更加灵活。
Linux系统初始化环境脚本和Web应用脚本主要是Shell指令和进程判断等的组合体,因此熟练掌握并应用Linux指令是学习Shell编程的必备条件之一,而熟练掌握Shell编程是学习Linux自动化运维的基础和前提,为以后进阶学习基于Python的自动化运维打下坚实的基础。一句话总结:“基础不牢,地动山摇”。
从头学习Linux基础
其实,不论学什么系统,“从头学起”很重要。还记得你刚刚接触微软的Windows都在干什么吗?还不就是由文件资源管理器学起,然后慢慢玩到控制面板、玩到桌面管理,然后还去学办公软件,我想,你总该不会直接就跳过这一段学习吧?那么Linux的学习其实也差不多,就是要从头慢慢学起。不能够还不会走路之前就想要学飞了吧!
常常有些朋友会写信来问鸟哥一些问题,不过,邮件中大多数的问题都很基础。例如:“为什么我的用户个人网页显示我没有权限进入?”、“为什么我执行一个命令的时候,系统告诉我找不到该命令?”、“我要如何限制用户的权限”等的问题,这些问题其实都不是很难,只要了解了Linux的基础之后,应该就可以很轻易地解决掉这方面的问题。所以请耐心慢慢的、将后面的所有章节内容都看完,自然你就知道如何解决。
此外,网络基础与安全也很重要,例如TCP/IP的基础知识,网络路由的相关概念等。很多的朋友一开始问的问题就是“为什么我的邮件服务器主机无法收到邮件?”这种问题相当的困扰,因为可能的原因太多,而朋友们常常一接触Linux就是希望“搭建网站”,根本没有想到要先了解一下Linux的基础,这是相当伤脑筋的问题。尤其近来计算机骇客(Cracker)相当多,一不小心您的主机就被当成骇客跳板,甚至发生被警告的事件也层出不穷。这些都是没能好好的注意一下网络基础的原因。
所以,鸟哥希望大家能够更了解Linux,好让它可以为你做更多的事情,而且这些基础知识是学习更深入的技巧的必备条件,因此建议:
1.计算机概论与硬件相关知识
因为既然想要走Linux这条路,信息技术相关的基础技能也不能没有,所以先理解一下基础的硬件知识,不用一定要全懂。又不是真的要你去组装计算机,但是至少要“听过、有概念”即可。
2.先从Linux的安装与命令学起
没有Linux怎么学习Linux?所以好好地先安装一个你需要的Linux吧!虽然说Linux发行版很多,不过基本上架构都是大同小异,差别在于界面的亲和力与软件的选择不同罢了。选择一个你喜欢的就好,倒是没有哪一个特别好这一说。
3.Linux操作系统的基础技能
这些包含了“用户、用户组的概念”、“权限的观念”、“程序的定义”等,尤其是权限的概念,由于不同的权限设置会影响你的用户的便利性,但是太过于便利又会导致入侵的可能,所以这里需要了解一下你的系统。
4.务必学会vi文本编辑器
Linux的文本编辑器多到会让你数到生气,不过,vi却是强烈建议要先学习的,这是因为vi会被很多软件所调用,加上所有的UNIX-like系统上面都有vi,所以你一定要学会才好。
5.Shell与Shell脚本的学习
其实鸟哥上面一直谈到的“命令行模式”说穿了就是一个名为Shell的软件。既然要玩命令行模式,当然就是要会使用Shell的意思。但是Shell上面的知识太多了,包括“正则表达式”、“管道命令”与“数据流重定向”等,真的需要了解比较好。此外,为了帮助你未来的管理服务器的便利性,Shell脚本也是挺重要的,要学!
6.一定要会软件管理
因为玩Linux常常会面临到要自己安装驱动程序或是安装额外软件的时候,尤其是嵌入式设备或是学术研究单位等。这个时候了解Tarball、RPM、DPKG、YUM、APT等软件管理的安装方式,对你来说就非常重要。
7.网络基础的建立
如果上面你都通过了,那么网络的基础就是下一阶段要接触的东西,这部分包含了“IP概念”、“路由概念”等。
8.如果连网络基础都通过了,那么网站的搭建对你来说,简直就是“太简单”。
在一些基础知识上,可能的话当然得去书店找书来读。如果您想要由网络上面阅读的话,那么这里推荐一下由Netman大哥主笔的Study-Area里面的基础文章,相当实用。
Linux书籍推荐
鸟哥的Linux私房菜 基础学习篇 第四版 Linux教程
作者:鸟哥 著 豆瓣评分8.5 ⭐⭐⭐⭐
这本书确实是为Linux新手所写的,里面包含了鸟哥从完全不懂Linux到现在的所有历程。因此,如果您对Linux有兴趣,那么这本书理论上应该是可以符合您的需求。由于Linux的基本功比较无聊,因此很多人在第一次接触就打退堂鼓了,非常可惜!您得要耐得住性子,要有刻苦耐劳的精神,才能够顺利地照着本书的流程阅读下去。
由于操作系统非常难,因此Linux并不好学。而且操作系统每个部分都是息息相关的,不论哪本书籍,章节的编排都很伤脑筋。建议您使用本书时,看不懂或者是很模糊的地方,可以先略过去,全部的文章都看完之后,再从头仔细地读一遍并做一遍,相信就能够豁然开朗起来。此外,“尽信书不如无书”,只读完这本书,相信您一定不可能学会Linux,但如果照着这本书里面的范例实践过,且在实作时思考每个指令动作所代表的意义,并且实际自己去学习过在线文档,那么想不会Linux都不容易啊!这么说,您应该清楚如何学习了吧?
本书是颇具知名度的Linux入门书《鸟哥的Linux私房菜 基础学习篇》的最新版,全面且详细地介绍了Linux操作系统。
全书分为五部分:第一部分着重说明计算机的基础知识、Linux的学习方法,如何规划和安装Linux主机以及CentOS 7.x的安装、登录与求助方法;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理、磁盘配额、高级文件系统管理、计划任务以及进程管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。
本书内容丰富全面,基本概念的讲解非常细致,深入浅出。各种功能和命令的介绍,都配以大量的实例操作和详尽的解析。本书是初学者学习Linux不可多得的一本入门好书。
Linux命令行大全 第2版
手把手教你学Linux操作系统,脚本shell编程代码书写,系统管理编程运维,学习使用bash(LinuxShell)编写完整的程序。
本书对Linux命令行进行详细的介绍,全书内容包括4个部分,第一部分由Shell的介绍开启命令行基础知识的学习之旅;第二部分讲述配置文件的编辑,如何通过命令行控制计算机;第三部分探讨常见的任务与必备工具;第四部分全面介绍Shell编程,读者可通过动手编写Shell脚本掌握Linux命令的应用,从而实现常见计算任务的自动化。通过阅读本书,读者将对Linux命令有更加深入的理解,并且可以将其应用到实际的工作中。
本书适合Linux初学人员、Linux系统管理人员及Linux爱好者阅读。
操作系统导论
豆瓣评分:9.4
美国操作系统教材,紧紧围绕操作系统的三大主题元素——虚拟化、并发和持久性进行讲解。
这是一本关于现代操作系统的书。全书围绕虚拟化、并发和持久性这3个主要概念展开,介绍了所有现代系统的主要组件(包括调度、虚拟内存管理、磁盘和I/O子系统、文件系统 )。
本书共50章,分为3个部分,分别讲述虚拟化、并发和持久性的相关内容。本书大部分章节均先提出特定的问题,然后通过书中介绍的技术、算法和思想来解决这些问题。笔者以对话形式引入所介绍的主题概念,行文诙谐幽默却又鞭辟入里,力求帮助读者理解操作系统中虚拟化、并发和持久性的原理。
本书内容全面,并给出了真实可运行的代码(而非伪代码),还提供了相应的练习,适合高等院校相关专业教师教学和高校学生自学。