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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现