Linux运维面试总结

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
1.Linux系统相关日志
    /var/log/message:系统信息日志,包含错误信息
    /var/log/secure:系统登录日志
    /var/log/maillog:邮件日志
    /var/log/cron:定时任务日志
     
2.MySQL主从复制(mysql主从是异步复制过程)
    通过三个线程来完成:
        ——dump线程(master节点)
        ——I/O线程(slave节点)
        ——SQL线程(slave节点)
    原理:
        ——master节点开启binlog功能,将执行的操作记录SQL记录到二进制日志文件中(dump线程)
        ——slave节点的I/O线程连接master节点,请求master的二进制日志,并获取二进制日志保存到自己的中继日志中
        ——slave节点的SQL线程定时检查中继日志是否发生变化,如果变化则更新数据(执行SQL)
             
3.MySQL主从复制的好处
    ——数据热备份,避免数据丢失
    ——架构的扩展,多库存储,提高I/O性能
    ——可以做读写分离,提高速度
     
4.ansible
    ansible的特点:
        ——不需要配置
        ——不需要启动服务
        ——客户端不需要部署服务
    ansible安装:
        ——yum -y install epel-release
        ——yum install -y ansible
    ansible的主要配置文件:
        ——ansible应用程序的主要配置文件:/etc/ansible/ansible.cfg
        ——定义管理主机的配置文件:/etc/ansible/hosts
    ansible应用程序命令:
        ——ansible-doc:获取模块列表,以及模块的使用格式
        ——ansible-doc -l:获取模块列表
        ——ansible-doc -s module-name:获取指定模块的使用信息
    ansible命令的使用方式:
        ——ansible 主机信息(IP/all/定义好的组) -m 使用的模块名 -a "模块要使用的参数(要执行的动作)"
    ansible的常用模块:
        ——ping
        ——command
        ——shell
        ——script
        ——copy
        ——fetch
        ——file
        ——cron
        ——service
        ——user
        ——mount
    ansible剧本:
        ——yaml语法规则:
            缩进(两个空格是一个缩进)
            冒号(后面接一个空格)
            短横线(后面加一个空格)
        ——检查剧本语法:
            ansible-playbook --syntax-check demo.yaml
        ——模拟执行:
            ansible-playbook -C demo.yaml
        ——正式执行剧本:
            ansible-playbook demo.yaml
             
 
5.Docker
    镜像管理:
        docker search  搜索镜像
        docker pull
        docker images
        docker rmi img
        docker load -i(<)
        docker save(>)
    启动容器:
        ——容器启动后,容器内执行的第一条命令的PID为1,如果PID为1的进程结束了,那么这个容器就结束了
        ——启动一个容器(前台打印):
            docker run 镜像:版本号
        ——启动一个容器并执行第一个命令(命令执行结束则容器结束,命令不结束则容器不结束):
            docker run 镜像:版本号 + 命令
        ——启动并进入容器内部(-i  -t),当退出容器时,容器会结束
            docker run -i -t 镜像:版本号 centos:7 /bin/bash
        ——启动容器并在后台运行(-d:让第一条命令在后台运行)(容器不会结束)
            docker run -i -t -d centos:7 /bin/bash
    进入容器:
        ——docker exec:
            ——这个命令的本质就是让docker exec替我在容器执行一条命令,当执行的命令是/bin/bash的时候就是执行一条登陆命令,则会进入容器内部
            ——让docker exec在容器里执行一条命令:
                docker exec -it 容器ID /usr/bin/echo test
            ——进入容器内部:
                docker exec -it 容器ID /bin/bash
        ——docker attach
    docker常用命令:
        docker ps
        docker ps -a
        docker start
        docker stop
        docker restart
        docker rm
        docker logs -f 容器ID/名称
        docker cp  本地文件  容器ID:容器路径
        docker inspect 容器ID/名称  ——> 查看详细信息
        docker ps -a -q ——> -q: 只显示容器的ID
    docker下制作一个容器镜像:
        docker commit 存在的容器名 + 要制作成的镜像名:版本号
         
6.DockerFile
    ——vim Dockerfile
    ——编写Dockerfile的内容
    ——指令:
        FROM:基础镜像
        RUN:运行命令
        ADD:复制后会自动解压
        COPY:复制后不会自动解压
        CMD:启动容器后执行的第一条命令
    ——docker build -t 镜像名:版本号
    ——docker images : 查看制作好的镜像
     
     
7.docker-compose(容器编排)
    ——docker-compose.yml文件
    ——docker-compose的命令参数:
        -f,–file FILE指定Compose模板文件,默认为docker-compose.yml,可以多次指定
        -p,–project-name NAME指定项目名称,默认将使用所在目录名称作为项目名
        -x-network-driver 使用Docker的可拔插网络后端特性(需要Docker 1.9+版本)
        -x-network-driver DRIVER指定网络后端的驱动,默认为bridge(需要Docker 1.9+版本)
        -verbose输出更多调试信息
        -v,–version打印版本并退出
    ——docker-compose相关命令:
        docker-compose up
        docker-compose up -d
        显示正在运行的进程:docker-compose top
        查看项目中web服务的进程:docker-compose top web
        查看项目中所有服务的容器信息:docker-compose ps
        查看某一个服务的ID(-q:只打印容器的 ID 信息):docker-compose ps -q web
        重启当前项目中的所有服务:docker-compose restart
        重启当前项目中的web服务:docker-compose restart web
        停止当前项目中所有服务:docker-compose stop (不会删除)
        停止当前项目中的web服务:docker-compose stop web
        启动被stop的服务容器:docker-compose start
        暂停项目中的所有服务:docker-compose pause
        恢复处于暂停状态的服务:docker-compose unpause
        停止容器:docker-compose down(停止运行的容器,并且删除已停止的容器以及已创建的所有网络)
 
8.OSI7层模型
        --应用层
        --表示层
        --会话层
        --传输层
        --网络层
        --数据链路层
        --物理层
     
9.Linux启动流程
        >> BIOS启动引导阶段
        >> GRUB启动引导阶段
        >> 内核阶段
        >> init初始化阶段
     
10.面试中被问到的相关问题
        ——grep命令的参数有什么?
        ——Nginx正向代理和反向代理的区别?
        ——Nginx常用的模块?
        ——Nginx的location怎么配置?
        ——你在部署中间件的过程中遇到的最难解决的问题是什么?怎么解决的?
        ——docker有几种生成镜像的方式?
        ——docker怎么实现数据持久化存储?
        ——介绍一下K8S?
        ——K8S和docker的关系和区别?
        ——查看Linux进程的命令
        ——查看Linux端口的命令?
        ——怎么查看Linux有即可物理CPU?以及CPU的核数?
        ——MySQL优化的方式有什么?
        ——Ansible的原理是什么?
        ——K8S怎么拉取镜像?
        ——怎么查看每颗CPU的使用情况?
        ——用什么方式把包传到服务器上最安全?
        ——排查应用服务问题的思路是怎样的?
        ——Linux的网卡配置文件在哪里?怎么重启网卡?
        ——MySQL的主从复制原理是什么?MySQL读写分离的原理是什么?
        ——云平台的运维要注意什么?
        ——怎么把文件传到另一个Linux服务器上?
        ——Nginx的负载均衡怎么实现的?
        ——Nginx+keepalive的高可用架构原理是什么?其中的vip的来源是什么?
        ——docker的相关命令?
        ——Nginx的日志切割怎么做?
        ——怎么查看Linux系统的负载情况?
        ——Linux系统的权限rwx代表什么?
        ——怎么查看Linux的内存使用情况?
        ——tomcat的端口怎么修改?
        ——Nginx的最大连接数是多少?
        ——Redis的密码怎么设置?对应的配置文件名是什么?
        ——Nginx的相关命令有什么?怎么查看Nginx的版本号?
        ——怎么调试shell脚本?
        ——K8S的pod怎么重启?
        ——你觉得运维人员需要具备什么品质?
        ——MySQL的数据备份方式有什么?mysqldump命令的参数有哪些?
        ——MySQL的默认密码保存在哪个文件中?
        ——SQL语句中的左连接和右连接查询的区别是什么?
        ——MySQL索引怎么加?
        ——你们公司的MySQL架构怎么样的?
        ——DNS是什么?
        ——CDN是什么?
        ——Linux系统上怎么生成秘钥对?
        ——防火墙策略?
        ——Firewalld防火墙的默认策略是什么?保存在哪个表中的?
        ——OSI7层模型有哪7层?
        ——Linux系统的启动流程是怎么样的?
        ——shell脚本中有哪些循环?
        ——shell中的变量$?代表什么?
        ——Linux定时任务怎么写?
        ——Linux的运行级别有什么?
        ——Linux忘记root密码怎么办?
        ——你部署过Nginx吗?部署的步骤是什么?
        ——你平时关注什么技术站吗?
        ——你了解git和svn吗?
        ——Nginx怎么实现动静分离?怎么实现正向代理?怎么实现反向代理?
        ——你们公司用的tomcat是什么版本?对应的JDK是什么版本?
        ——你知道目前MySQL的最新版本是多少吗?Oracle呢?
        ——介绍一下Raid
        

  

posted @   映辉  阅读(104)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示