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