运维工程师职业技能汇总大全(万字好文,持续更新)

 运维工程师职业技能汇总大全(万字好文,持续更新)

1. 基础知识 

1.1 系统原理 

1.1.1 Linux操作系统启动流程

a. 名词解释:
BIOS

基本输入输出系统(Basic Input Output System,BIOS)是一组固化到计算机主板上的只读内存镜像(Read Only Memory image,ROM)芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

MBR

全新硬盘在使用之前必须进行分区格式化,硬盘分区初始化的格式主要由两种,分别是:MBR格式和GPT格式。
MBR主引导记录扇区(Main Boot Record)是计算机启动最先执行的硬盘上的程序,只有512字节大小,所以不能载入操作系统的核心,只能先载入一个可以载入计算机核心的程序,我们称之为引导程序。MBR分区标准决定了MBR只支持在2TB以下的硬盘。

GPT

GUID全局唯一的标识符(Globally unique identifier,简称GPT),正逐渐取代MBR成为新标准。它和统一的可扩展固件接口 (Unified Extensible Firmware Interface,UEFI)相辅相成。UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR。GPT支持2T以上磁盘,如果使用Fdisk分区,最大只能建立2TB大小的分区,创建大于2TB的分区,需使用parted,同时必须使用64位操作系统。

GRUB
GNU项目的多操作系统启动程序(GRand Unified Bootloader,GRUB),可以支持多操作系统的引导,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。CentOS 7 Linux默认使用GRUB2引导程序,引导系统启动。

 b. 启动流程

我的理解是:

开机质检
加载BIOS
读取MBR
引导GRUB
加载内核
确定启动级别
加载模块
系统初始化
执行对应启动级别自启任务
执行rc.local文件
登录shell

 (1)加载BIOS

计算机电源加电质检,首先加载基本输入输出系统(Basic Input Output System,BIOS),BIOS中包含硬件CPU、内存、硬盘等相关信息,包含设备启动顺序信息、硬盘信息、内存信息、时钟信息、即插即用(Plug-and-Play,PNP)特性等。加载完BIOS信息,计算机将根据顺序进行启动。

(2)读取MBR

读取完BIOS信息,计算机将会查找BIOS所指定的硬盘MBR引导扇区,将其内容复制到0x7c00地址所在的物理内存中。被复制到物理内存的内容是Boot Loader,然后进行引导。

(3)GRUB引导

GRUB启动引导器是计算机启动过程中运行的第一个软件程序,当计算机读取内存中的GRUB配置信息后,会根据其配置信息来启动硬盘中不同的操作系统。

(4)加载Kernel

计算机读取内存映像,并进行解压缩操作,屏幕一般会输出“Uncompressing Linux”的提示,当解压缩内核完成后,屏幕输出“OK, booting the kernel”。系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。

(5)设定Inittab运行等级

内核加载完毕,会启动Linux操作系统第一个守护进程init,然后通过该进程读取/etc/inittab文件,/etc/inittab文件的作用是设定Linux的运行等级,Linux常见运行级别如下:

  • 0:关机模式;
  • 1:单用户模式;
  • 2:无网络支持的多用户模式;
  • 3:字符界面多用户模式;
  • 4:保留,未使用模式;
  • 5:图像界面多用户模式;
  • 6:重新引导系统,重启模式。

(6)加载rc.sysinit

读取完运行级别,Linux系统执行的第一个用户层文件/etc/rc.d/rc.sysinit,该文件功能包括:设定PATH运行变量、设定网络配置、启动swap分区、设定/proc、系统函数、配置Selinux等。

(7)加载内核模块

读取/etc/modules.conf文件及/etc/modules.d目录下的文件来加载系统内核模块。该模块文件,可以后期添加或者修改及删除。

(8)启动运行级别程序

根据之前读取的运行级别,操作系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。其中以S开头表示系统即将启动的程序,如果以K开头,则代表停止该服务。S和K后紧跟的数字为启动顺序编号。

(9)读取rc.local文件

操作系统启动完相应服务之后,会读取执行/etc/rc.d/rc.local文件,可以将需要开机启动的任务加入到该文件末尾,系统会逐行去执行并启动相应命令

(10)执行/bin/login程序

执行/bin/login程序,启动到系统登录界面,操作系统等待用户输入用户名和密码,即可登录到Shell终端,输入用户名、密码即可登录Linux操作系统,至此Linux操作系统完整流程启动完毕。

1.2 命令基础 

1.3 网络基础 

1.3.1 网络模型

七层网络协议模型

物理层:由于网络传输介质传输的是比特位(01),因此物理层必须定义所使用的传输设备的电压和信号等,同时还必须了解数据帧转换成比特流的编码方式,最后链接实际传输介质并发送/接收比特信号。
数据链路层:硬件部分,主要处理MAC数据帧,传递给物理层转换成比特流;软件部分主要处理来自上层的数据表转换成MAC的格式。相关协议:PPP
网络层:定义IP地址,定义计算机之间的链接建立,终止维护等,数据包的传输路径等。相关协议:IP、ICMP、ARP、RARP
传输层:定义发送端与接收端的链接技术(TCP,UDP)同时包括该技术的数据包格式,数据包的发送,流程的控制等,以确保各个资料数据可以正确无误的到达目的端。相关协议:TCP、UDP
会话层:确定网络服务建立链接的确认。
表示层:定义网络服务(或程序)之间的数据格式的转换,使数据格式标准化,也包括数据的加密解密也是在这层上处理。
应用层:将数据发送给应用程序,并最终展示给用户。相关协议:HTTP、FTP、SMTP等。
虽然OSI七层协议的架构非常严谨,但是由于太过严谨导致程序编写相当不容易,因此产生了TCP/IP协议。

应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

网络接口层(主机-网络层):接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

1.3.2 网络划分

IP地址的种类划分:
在IPV4中有两种IP类别
Public IP:公共IP,经由InterNIC统一规划IP,只有这种IP才可链接到Internet。
Private IP:私有IP或保留IP,不能直接连上Internet的IP,主要用于局域网络内的主机链接规划。
Public IP公共IP如下:(注:128+64+32+16+8+4+2+1)

A类地址
定义:第1字节为网络地址,其它3个字节为主机地址(第一个字节1...126都是指网络地址,后面跟的三位数具体到主机)
范围:1.0.0.1 - 126.255.255.254
子网掩码:255.0.0.0
私有地址:10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址),范围10.0.0.0-10.255.255.255 ---
保留地址127.X.X.X是保留地址,用做循环测试用的,吗比如常用的 127.0.0.1
B类地址
定义:第1字节和第2字节为网络地址,其它2个字节为主机地址
范围:128.0.0.1 - 191.255.255.254
子网掩码:255.255.0.0
私有地址:172.16.0.0 - 172.31.255.255是私有地址
保留地址:169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP
C类地址
范围:第1字节、第2字节和第3个字节为网络地址,第4个个字节为主机地址。另外第1个字节的前三位固定为110
范围:192.0.0.1 - 223.255.255.254
子网掩码:255.255.255.0
私有地址:192.168.X.X是私有地址。(192.168.0.0 - 192.168.255.255)
D类地址
定义:不分网络地址和主机地址,它的第1个字节的前四位固定为1110
范围:224.0.0.1 - 239.255.255.254
E类地址
定义:不分网络地址和主机地址,它的第1个字节的前五位固定为11110
范围:240.0.0.1 - 255.255.255.254
另外, ip地址后边加个/8(16,24,32),这些数字代表掩码的位数

 

1.3.3 TCP的三次握手及四次挥手详解

 三次握手:
第一次握手:客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口。
第二次握手:服务器发回确认包ACK应答,即SYN标志位和ACK标志位均为1。
第三次握手:客户端再次发送确认包ACK,SYN标志位为0,ACK标志位为1。
四次挥手:
第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器的数据传送,客户端进入FIN_WAIT_1状态。
第二次挥手:服务器收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1,服务器进入CLOSE_WAIT状态。
第三次挥手:服务器发送一个FIN,用来关闭Server到Client的数据传送,服务器进入LAST_ACK状态。
第四次挥手:客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送一个ACK给服务器确认序号为收到序号+1,服务器进入CLOSE状态,完成四次挥手

1.4 排错基础 

1.5 优化基础 

1.6 安全基础 

1.7 原理基础 

2. WEB管理 

2.1 Nginx 

2.1.1 部署 

2.1.2 优化 

2.1.3 备份 

2.1.4 恢复 

2.2 Httpd 

2.3 Tomcat 

2.4 IIS 

3. 数据库 

3.1 MySQL 

3.1.1 部署 

3.1.2 优化 

3.1.3 备份 

3.1.4 恢复 

3.2 Oracle 

3.3 MongoDB 

3.4 Redis 

3.5 Memcached 

4. 消息队列 

4.1 ActiveMQ 

4.2 RabbitMQ 

4.2.1 部署环境 

4.2.2 版本依赖 

4.2.3 安装包下载地址 

4.2.4 安装步骤 

4.2.5 常用命令 

5. 监控 

5.1 Zabbix 

5.2 Prometheus 

5.3 Cacti 

5.4 Nagios 

6. CI/CD 

6.1 Jenkins 

7. 日志管理 

7.1 ELK 

8. 高可用/集群 

8.1 Lvs 

8.2 Keepalived 

8.3 Haproxy 

9. 负载均衡 

9.1 Nginx 

9.2 F5 

10. 性能测试 

10.1 Ab 

10.2 LoadRunner 

11. 存储技术 

11.1 NFS 

11.2 NAS 

12. 版本管理 

12.1 SVN 

12.2 Git 

13. 备份工具 

13.1 Rsync 

13.1.1 Rsync+NFS实现增量备份 

13.1.2 Rsync+inotify实现实时备份 

14. 虚拟化 

14.1 KVM 

14.2 Xen 

14.3 VMware 

14.4 Hyper-V 

15. 容器 

15.1 Docker 

15.2 K8s 

16. 云计算 

16.1 OpenStack 

16.2 CloudStack 

17. 自建服务 

17.1 Posfix 

17.2 DNS 

17.3 VPN 

18. CMDB/Wiki 

18.1 iTop 

18.2 蓝鲸 

18.3 Codo 

18.4 Confluence 

19. 认证 

19.1 openLDAP 

19.2  

20. 自动化 

20.1 Ansible 

20.2 Saltstack 

20.3 Puppet 

21. 开发语言 

21.1 Shell 

21.2 Python 

猜你喜欢

转载自www.cnblogs.com/biaopei/p/12565331.html