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