linux-面试题总结

"面试"

Posted by yangsir on October 8, 2024

“面试总结 ”

面试题总结

redis篇

1、什么是Redis?简述它的优缺点?

redis是一个非关系型数据库,主要以键值对的方式存储数据,用于缓存服务,也可用来保存会话信息

2、Redis相比memcached有哪些优势?

redis支持数据持久化存储,支持更多的数据类型

3、Redis支持哪几种数据类型?

数字、字符串、哈希、位图等

4、Redis主要消耗什么物理资源?

内存

5、Redis有哪几种数据淘汰策略?

Noeviction

默认策略,内存达到顶值后,返回写失败信息

allkeys-lru

按最近最少访问原则,在所有数据中进行清除

volatile-lru:

按最近最少访问原则, 在设置的过期时间的数据中进行清除

allkeys-random:

在所有数据范围内,随机删除数据

volatile-random:

在设置了过期时间的数据中随机删

6、Redis官方为什么不提供Windows版本?

因为目前Linux版本已经相当稳定,而且用户量很大,无需开发windows版本,反而会带来兼容性等问题。

7、一个字符串类型的值能存储最大容量是多少?

512M

8、为什么Redis需要把所有数据放到内存中?

为了追求数据读写速度

9、Redis集群方案应该怎么做?都有哪些方案?

主从复制、哨兵集群、分片集群

10、Redis集群方案什么情况下会导致整个集群不可用?

有A,B,C三个节点的集群,在没有复制模型的情况下,如果节点B失败了,那么整个集群就会以为缺少5501-11000这个范围的槽而不可用。

11、MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?

redis内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

12、Redis有哪些适合的场景?

用于缓存、消息中间件

13、Redis如何设置密码及验证密码?

在配置文件中通过require_pass设置,登录redis时通过auth认证密码

14、说说Redis哈希槽的概念?

哈希槽是在分片集群中的概念,用于定位数据存储,分片集群创建后,固定有16384哈希槽,集群中的主节点平均分,当有数据存入时,会使用键进行哈希运算再除以16384取余,根据余数定位数据

15、Redis集群的主从复制模型是怎样的?

支持一主一从,一主多从,从默认为只读

16、Redis集群会有写操作丢失吗?为什么?

会有,当集群中的主服务器宕机时,会缺少一部分数据的写操作

公司面试题

1、yum安装的缺点

需要依赖正常的yum源配置文件,安装软件时需要配置yum源

2、yum安装后如果没有提示配置文件位置要怎么查找

rpm -ql 软件名

3、ssh免密登陆的原理

通过密钥对,公钥和私钥唯一对应的关系,在客户机创建密钥对,并将公钥拷贝到远程服务器

4、讲述TCP协议三次握手过程

主机A发送SYN请求建立连接

主机B回应SYN + ACK, 同意连接并向A发送建立连接的请求

主机A回应ACK,确认建立连接

5、你比同届毕业生的优势是什么

6、你是怎么和你学习圈子的人认识的

7、你平时通过什么来学习想要了解的技术知识。

8、现在在那居住

9、能否接受不定期加班

10、入职后对自己有什么规划

某云面试题

1、监控cpu 磁盘,IO,内存的命令

监控cpu: top, mpstat, uptime

磁盘: iostat

内存:free -m

2、文件权限,解释755是什么权限

文件所有者读写执行,用户组与其他用户读和执行

3、服务器加硬盘,如何挂在到data目录

硬盘首先进行初始化,按需求进行分区,格式化,编辑/etc/fstab进行自动挂载, 使用df -hT查看挂载

4、需要从文件中截取字符串用到那些字符串

使用awk或者grep

5、Linux默认shell

/bin/bash

6、测试到某个服务器的网络和连通性

测试网络可以使用ping,telnet

7、看一台服务器到那个服务的ip或端口通不通

测试ip是否可正常通信使用ping, 测试端口可以使用telnet, curl这样的工具

8、硬链接和软连接区别,删除后呢,删除后有什么影响

1、软链接

可以为文件、目录创建

可跨分区创建

源文件删除,链接文件失效

2、硬链接

只能为文件创建

不可跨分区

源文件删除、链接文件可正常访问

9、有用过ansible用那些模块?

shell执行命令, copy拷贝普通文件,ping测试通信, yum安装系统软件,service管理系统服务,script统一推送执行脚本, user/group模块管理用户和用户组

10、如果ansible 配置密码 ,名字可以叫什么?

需要在主机清单文件中通过ansible_ssh_user变量定义用户名,ansible_ssh_passwd变量定义密码

11、容器了解吗

了解,容器是个轻量级的虚拟化技术,创建速度快,一般都是秒级的; 用于快速部署业务统一,方便业务迁移。容器需要依赖特定的镜像创建

12、如果做nginx镜像 需要做什么?

准备一个容量小的基础镜像,nginx安装包, 编写dockerfile,在dockerfile中指定基础镜像,通过RUN指令安装依赖,安装nginx; 拷贝事先准备的配置文件,使用指令CMD配置前台启动nginx, 再使用docker build构建镜像

13、如果dockerfile 有个copy和add命令 的区别

copy只能拷贝本地文件

add支持拷贝本地文件、url; 如果 本地文件是压缩包,拷贝到容器后会自动解压

14、Docker看有多少镜像

Docker images list

15、Docker启动容器要指定端口

-p 指定端口

-P随机端口

16、容器导出

docker export -o

17、Mysql清楚吗,主从哪? 说明主从的原理

清楚,Master服务器将写操作保存到二进制日志,通过网络将事件发送给slave服务器;

slave服务器产生I/O thread线程接收二进制日志事件,并将该事件写入到本地的中继日志relay log,同时产生SQL thread线程从中继日志中读取操作执行操作,确保数据同步

18、部署MySQL密码忘记怎么办?

编辑配置文件 输入mysqld –skip-grant-tables 然后重启服务,开启MySQL修改密码,退出 ,删除mysqld –skip-grant-tables,重启服务,用密码登录

19、定时任务,每周一的早上2点备份库的一个表,随便取库名表名,每周一怎么体现

0 2 * * 1 mysqldump -u用户 -p密码 库名 表名 > 备份文件内容

20、自动化监控方面接触的什么?搭建过吗,简要说一下zabbix部署流程

自动化监控,首先部署一台zabbix监控服务器,可以通过ansible这样的工具在客户端自动部署zabbix-agent,然后在server端通过创建自动注册动作自动监控主机、链接模板

21、ELK有了解吗,说一下了解的模块,说一个各自负责的内容

ELK可以方便在集群环境统一收集日志,便于日志分析处理。服务端主要涉及3个组件,分别是ES提供搜索引擎功能,Logstash提供日志过滤功能,kibana提供web UI界面; 客户端通常需要安装beat软件,作为日志搜索的客户端工具

某创面试

  1. MySQL数据库的备份方式有哪几种

通过mysqldump做逻辑备份,也可以进行物理备份

  1. MySQL数据库找不到套接字文件的可能原因

(1) MySQL服务未启动,

(2) 套接字文件的路径设置错误。需要修改配置文件

(3) 套接字文件目录的访问权限

(4) 套接字文件丢失

  1. 说一说在MySQL数据库中 view命令和job命令分别是干什么的

答:view命令为视图命令,下次再使用数据时,直接从视图中查询数据即可

​ Job命令为MySQL的定时任务, 可以精确定位到秒级别的任务执行

  1. 在top命令中如何按照进程的CPU使用率排序

答:运行top命令后,键入大写P 即可查看按进程的CPU使用率排序。

  1. 讲一讲raid50和raid5 的区别

答:(1) raid50提供了个更可靠的数据存储和整体性能,支持更大的卷尺寸,即使两个 物理磁盘发生故障,数据也可以顺利恢复过来

(2) raid5 适合小数据块和随机读写的数据。Raid50更适合需要高可靠性存储。高读取速度,高数据传输性能的应用

  1. 讲一讲lvs和haproxy负载均衡的区别

答:lvs是基于四层调度的负载均衡,haproxy既可以进行四层调度,也可以进行七层调度

  1. 阐述一下LVS负载均衡集群中的DR模式和NAT模式。

答: 在DR模式中请求由LVS接受由真实提供服务的服务器,直接返回给用户。返回的

候不经过LVS

在NAT模式中请求的相应都需要经过调度器的处理。DIP VIP分别属于不同的网络。调度器开启路由转发,所有real server网关要指向VIP

某鲸面试题

1、linux怎么删除多个后缀为.log文件

rm *.log

2、raid0 1 5 10区别

Raid 0:两块盘,增加数据读写速度,无数据冗余

Raid 1:两块盘,增加数据冗余 ,1/2存储空间

Raid 5:至少3块盘,存储数据和校验码,提升速度、冗余性; 最多允许坏一盘硬

Raid 10:至少4块盘,提升速度、冗余 ,就是raid 1和raid 0的组合

3、shell脚本写了一个1-100循环打印

For i in $(seq 100); do

Echo $i

done

4、mysql存储引擎

MyISAM: 查询速度快,不支持事务

InnoDB: 支持事务,适应写多的场景

5、服务器开机步骤

开机硬件自检,在MBR中找引导记录加载grub,加载内核,启动系统初始化程序,等待用户登录

6、nginx几层负载均衡

支持四层、七层负载

7、redis哨兵 集群 原理

哨兵起一个监控的作用,监控主服务器状态,主宕机后,会在从中自动选择一个新主,并把其他的从连接到新主上,增加主服务器的可用性

8、tomcat 原理 各个端口作用

原理:启动java虚拟机,在java虚拟机中运行应用

8005端口:默认实例端口, 8080:默认提供http服务端口

9、怎么sed将一个文件带#号 的行删除

Sed -ri ‘/#/d’ 文件

10、kvm列举出所有的虚拟机命令

Virsh list –all

11、openstack的创建开机流程,都会流转那些组件

客户端申请创建虚拟机,由nova-api进行接收,通过nova-conductor将信息写入数据库,再由nova-scheduler选择合适的计算节点创建,最后由nova-compute调用hypervisor创建虚拟机;

中间会涉及glance组件,获取镜像信息; neutron组件为其提供网络连接,cinder组件提供系统盘

12、对于mysql的备份,有2T的数据需要备份,使用mysqldump合适吗

不合适,考虑数据恢复速度,建议使用物理备份方式

13、不同目录下的*.log文件,怎么通过一条命令删除

# find 目录 -name “*.log” -exec rm -rf {} \;

14、docker-compose怎么去按顺序启动容器

按compose文件中定义的service顺序

15、LVS负载均衡有那些调度算法

主要三类,轮询rr, sh源hash, lc最少连接算法

16、Keepalived中一台机器挂了vip漂移到备机上,主机恢复了vip会飘回去吗

17、keepalived master抢占和脑裂怎么排查

通过观察messages日志信息,或者通过抓包查看心跳地

18、存活探针和就绪探针的用法

都是用来对Pod进行健康状态检查的

存活探针:只要pod自身运行正常即认为健康

就绪探针:要检测pod中的服务可正常接收客户端请求

19、k8s怎么去管理容器的

将容器封装到pod中,以pod为最小单位进行管理

20、有状态pod调度用什么

pod重建时会自动挂载之前的存储,适用于数据库场景

21、k8s的组件

Kube-apiserver:负责接收客户操作请求,身份认证,与etcd数据库交互

Kube-scheduler:调度pod的操作请求

Kube-controller-manager:提供RS,维护pod副本

Kubelet:负责调用容器引擎实现容器的创建、删除、查看等操作

Kube-proxy:实现pod间负载均衡

etcd数据库:存储k8s集群中所有状态数据

22、k8s的pv和pvc有啥区别

PV:相当于对后端真实存储的一个描述

PVC:相当于一个申请存储空间的请求

23、用grep命令查看关键字的前10行

# -B 10 前10行

# -A 10 后10行

# -C 10 前后10行

24、sed 命令加什么参数只显示修改过的行 -n

# -n

25、怎么查看cpu的使用情况

# top

# mpstat

26、mysql怎样备份一张表

# mysqldump -u 用户名 -p 密码 –lock-all-tables –master-data=2 库名 表名 > 文件名称

27、数据库有一张学生表,把成绩59分的学生,修改为70分

# update 表 set 成绩=70 where 成绩=59

28、mysql的端口

3306/tcp

29、用zabbix监控一个网站,都需要哪些监控项

端口进程状态 并发连接 下载速度 时间 流量

30、k8s的最小调度单位

pod

31、新磁盘设置的命令

Fdisk 管理MBR分区表磁盘 小于2T

Parted 管理GPT分区表磁盘 大于等于2T

32、查看数据库的主从

# show slave status

33、docker的命令

# docker run

# docker ps

# docker rm

# docker rmi

# docker exec

# docker logs

# docker inspect

34、docker网络模式

Bridge, host, none, container

35、块存储和网络存储的区别

块存储: 直接共享裸设备,通过iSCSI协议共享存储,分为IP SAN和FC SAN

网络存储: 基于NFS或CIFS共享文件系统,适用于小型集群

36、nginx和lvs负载均衡的区别

Nginx:

七层调度,1.19版后支持四层调度(stream模块)

可以用于做网站服务、url重写

LVS

基于内核工作

4层调度

37、zabbix怎么通过snmp协议监控网络设备

A) 网络设备启动SNMP V2协议

B) 网络设备配置MIB库

C) Zabbix server通过SNMP协议采集数据

38、主从复制原理

39、grep的一些参数的用法

-A, -B, -C

-i 忽略大小 写

-n 显示行号

-e 多条件过滤

-v 反向过滤

-E 支持扩展正则

40、ftp配置完成后能不能root用户直接登录

不能,root用户不能作为任意服务访问用户

41、kvm,docker的一些操作命令

# virsh list –all

# virsh net-list

# virsh pool-list

# virsh attach-disk

# virsh attack-interface

# qemu-img info

# qemu-img create -f qcow2

42、mysql源码安装和rpm安装的区别

源码安装:

可自定义软件安装目录、定制软件功能参数

rpm安装:

安装简单

43、mysql调优

1) 设置最大并发数 2) 调整innodb存储引擎buffer/cache大小 3) 启动线程池

44、三次握手,四次挥手

45、如果远程链接不到MySQL,什么解决思路

1) ping检测网络通信 2) 检查防火墙拦截 3) 检查MySQL远程用户存在、权限是否正确 4) MySQL是否禁用远程 连接 5) MySQL服务是否正常运行

46、CPU那一列各个参数

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

Us: 用户进程CPU百分比

Sy: 系统进程CPU百分比

Ni: 调整过进程优先级CPU占比

Id: CPU空闲

Wa: 等待磁盘IO的进程CPU占比

Hi: 处理硬中断CPU占比

Si: 处理软中断CPU占比

St: 处理虚拟化操作CPU占比

47、在哪可以用到数据库

数据库分关系型、非关系型

关系型用做数据持久化存储

非关系型用作缓存、存储会话

48、nginx了解到多少

Lnmp, url重写、反向代理 、负载均衡、https

49、使用ansible干过什么

自动部署zabbix-agent

自动部署nginx

50、docker删除镜像,查看镜像

# docker rmi 镜像名称/ID

# docker image ls

51、tomcat是什么

# java应用程序中间件

52、mycat中间件,以及项目的原理

Mycat对前端业务呈现虚拟数据库、通过dataNode关联后端真实数据库、通过dataHost关联后端数据库地址

53、haproxy的原理,keepalived项目的组合应用的原理

组合:

haproxy提供虚拟服务接收客户端请求、通过调度算法向real server转发请求、real server处理请求响应客户端。keepalived为haproxy提供高可用,同时提供VIP便于客户端连接

54、查看所有系统的参数

# sysctl -a

55、docker与传统虚拟机的区别

docker容器:

1) 所有容器共享物理机内核 2) 创建速度快 3) 没有虚拟硬件

传统虚拟机:

1) 每个虚拟机都有独立内核 2) 数据处理速度慢

56、连接容器除了exec还有啥

# docker exec

# docker attach 容器名称/ID

57、docker怎么实现容器数据的持久化存储

# -v 挂载物理机目录

# 通过数据卷实现持久化

58、docker 导出镜像命令中export和save的区别

# docker export 导出容器

# docker save 导出镜像

K8s组件有哪些,有啥作用

59、yum依赖网络下载软件,如果电脑没网,怎么安装软件

找有网的主机缓存软件包,拷贝到 服务器做本地源安装

60、Python的pip install 也要网,没网怎么下载

找有网的机器下载模块安装包,上传到服务器进行安装

61、查找文件的命令有哪些

# find

# locate

# whereis

# which

62、mysql主从与主主区别

主从

# 主服务器处理写,从负责读, 主将数据同步到从

主主

# 任意主都可以进行写操作,相互同步数据

63、配置ansible时,ssh怎么配置

A) SSH配置免密

B) 或在/etc/ansible/hosts清单文件中添加被管理主机ssh连接信息

Ansible_ssh_user, ansible_ssh_pwd, ansible_ssh_port

64、openstack各个组件及作用

Keystone: 进行各组件认证、终端用户认证

Nova: 实现云服务器整个生命周期 管理

Glance:提供磁盘镜像文件管理

Neutron:为云服务器提供网络连接

Cinder:为云服务提供虚拟磁盘

Dashboard:在云平台提供web UI界面

Swift:连接分布式存储,存储磁盘镜像文件

65、常见的raid有哪些 raid10和raid01有什么区别 哪个故障率更高

Raid 0:读写速度快

Raid 1:提供数据冗余

Raid 5:增加读写速度、提供数据冗余、最多坏一块盘

Raid 6:和raid 5类似,同时可坏两块盘

Raid 10:

先进行raid 1,再通过raid 1组合raid 0

故障率低

Raid 01

先进行raid 0, 再通过raid 0组合raid 1

故障率高

66、mha中主master故障之后,时隔一个月在连接进mha集群会有什么问题

连接进来时,尽可能减少复制延迟,要在当前主服务器上进行数据备份,在新服务器上进行恢复,将新服务器作为从连接进来

67、如何从容器中传文件到本地,反过来可以吗

# docker cp 本地文件 容器:目录

# docker cp 容器:目录 本地文件

68、k8s master的组件 哪个和数据库交互

Kube-apiserver

69、k8s怎么创建资源

编写yaml文件,通过kubectl create -f yaml文件名

70、keepalived vip怎么生成的,调用的外部脚本 脚本中最关键的是什么

将多个实体机器加入同一个vrrp组,通过组进行生成VIP,在组内通过优先级选举主备、主服务器负责接收连接同时负责心跳,调用外部脚本时,外部脚本检测虚拟服务工作状态,虚拟服务宕机后,停止keepalived,VIP迁移

某世纪面试题

1、nginx反向代理做四层和七层调度在配置上有什么区别?

四层:根据ip和端口进行调度——stream

七层:根据访问的数据来进行调度——upstream

2、Nginx反向代理location的匹配优先级?

精确

不正则

~

区分大小

不区分大小写

所有

3、使用过nginx那些模块?

认证模块,http反向代理模块,负载均衡,调php的模块

4、MySQL的MHA集群原理?

一主多从的环境

MHA node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序是完全透明的。

5、MySQL主从如何查看数据是否同步?

看复制延迟时间

看IO SQL进程状态

看二进制日志

6、Docker的网络模型?

Bridge、host、None

7、如何查看docker虚拟网卡绑定的容器数量

docker network inspect

8、使用什么方式安装的k8s集群

Kuberadmin第三方工具

9、Docker是利用什么形成的资源隔离

namespace 命名空间——实现容器间的资源(用户、进程)隔离

Cgroup——实现容器的资源(CPU、内存)限制

10、Deployment 和RS 有什么区别?

RS是副本集 是新一代的RC,提供同样的高可用能力。

Deployment自动创建RS保证Pod副本,支持滚动更新

11、Ceph的存储方式?

块存储、文件系统存储、对象存储

12、Ansible用过什么模块

Copy推送文件、File管理文件目录、Shell执行shell命令、ping检测网络、cron周期计划、yum管理RPM软件、service管理系统服务、group管理用户组、user管理用户、script推送并执行脚本、lineinfile管理文件内容,setup搜集被管理机信息

13、剧本设置变量的优先级

优先级

1.命令行中的-e

2.主机自带的变量 such as: set up

3.playbook中定义的变量(yml文件中)直接写在里面大于写在文件里面的

4.主机清单里面的

变量名:

只能是字母、数字、下划线必须数字开头

引用变量

14、详细说明客户端是怎么访问百度的

(1) 客户端查找本地DNS缓存获取IP,若没有,则查找本地hosts文件,若没有则向网卡上配置的DNS发送请求获取

(2) 客户端查看本地ARP缓存表,查找网关的MAC,若没有,则发送ARP请求获取

(3) 向网关发送数据,经过公司网络设备转换,到达连接互联网的网关设备

(4) 网关设备查找路由器表,将源IP转换为公网IP,将数据发送到互联网

某宇信息面试

一面

1.数据库操作语言

2.ELK日志分析平台部署

3.zabbix具体监控过什么

4.辩论赛小组担任什么角色

5.毕业论文

6.了解tomcat,nginx这种中间件吗,他俩的共同之处是什么

7.tomcat怎么修改端口的

二面

1.在校期间学了什么科目

2.如果你和另一个人需要在周四之前完成任务,你的部分完成了,另一个人咋都不愿意完成你会怎么办

3.如果法官的审核系统有数据错误(他看错了),给你打电话让你修改,然后你核对之后没错,你告诉他,但他就说错了,你会咋弄,还投诉你

4.问啥会来的北京

5.面了几家了

6.一般实习是3-6个月,你如何在三个月内转正

7.毕设问题(浅问了一下)

8.平时喜欢干什么

9.问我的职业规划

10.管理岗位与普通工程师的区别

11.对加班的看法

12.Nginx在做负载均衡的时候,具体的配置是什么?

13.使用过redis没有,有没有做过哨兵集群(在这里我延伸了一下redis哨兵集群中的配置文件的问题)

14.Lvs,haproxy,keepalived,之间有什么区别,分别可以用来干什么?

15.用shell写过什么(我说了pxe还有mysql主备),python掌握的怎么样

16.其余的就是一些硬件上的问题,例如磁盘阵列,网络上的问题,例如抓包。

某丰华面试

1、网络方面,你有了解哪些,对于包括路由器交换机配置什么的说说?

2、Nginx和tomcat,你是怎么分配的,具体根据什么分配的,怎样让它合理,有没有什么依据?

根据应用场景不同选择不同的软件,tomcat主要是java的中间件,运行java应用程序; 而nginx主要用于作反向代理或负载均衡

3、讲讲你对防火墙的理解?

防火墙主要为了加强服务器访问的安全性,设置一些规则拦截或允许特定的访问,分为硬件、软件 防火墙

4、NAT转换有几种?具体怎么配置的,能说一点代码吗?

接触到的有2种,一种是SNAT源地址转换,主要用于内容客户端访问外网; 还有一种是DNAT,目的地址转换,主要用于端口映射

5、说说你对数据库的理解?

以MySQL为例,提供以表为结构的数据存储,主要用于业务后端存储数据,同时提供比如主键、外键的一些约束保证数据的一致完整,同时还提供事务,确保多个写操作的成功执行。

做数据备份可以使用mysqldump工具

可以通过主从复制、双主复制的架构提供性能、可用性

6、AB复制是怎么实现的,说说具体过程?如果在将来从机出现故障,而且数据已经很多的状况下不适合重新全备,你怎么做?有没有什么恢复方法?

主服务器将写操作记录到二进制日志,从服务器产生IO线程接收写操作并存入自己的中继日志,SQL线程从中继日志中读取再重新执行。

从服务器会记录上次故障数据复制的断点,修复后,配置其从断点开始向后恢复数据

7、Nginx转发,后台tomcat日志文件中看到是客户的真实地址还是nginx的地址?

看到的是nginx地址,要想记录真实客户端地址,需要通过proxy_set_header X-REAL-IP $remote_addr配置

8、常用的日志文件有什么?有什么作用,可以得到什么信息?

/var/log/messages:记录系统日常操作行为,例如安装软件、重启网络

/var/log/secure:安全日志,记录普通用户sudo授权执行的操作

/var/log/boot.log:启动日志,记录系统启动流程

Dmesg:查看硬件故障

9、如何利用日志文件进行错误排错,有没有什么具体的方法或者操作?

例如启动服务失败,准备两个终端,其中一个启动服务,另外一个终端通过tail -f动态查看日志,

10、说说抓包的过程?什么情况下抓包,有什么作用?

使用过tcpdump进行抓包,网络通信故障、或集群心跳故障、再或者了解协议的工作原理可通过抓包验证

11、说说TCP和UDP的区别?有什么特点?

TCP:

面向连接、可靠的

可靠是因为其内部设计有数据重传计时器、滑动窗口机制避免数据阻塞

UDP:

无连接,相对不可靠的,由于数据容量小,速度快

12、谈谈你对firewalld的认识?你是如何配置的?具体代码是什么?

Centos 7之后的一个动态防火墙,通过区域实现数据的拦截

13、关系型数据库的特点?和非关系型数据库的区别?

关系型数据库以表为结构存储数据,一般用于业务数据的持久存储

非关系型数据库,例如redis, memcahed,以键值对存储数据,用于缓存 服务

14、MHA集群是怎么部署的?主服务器宕机恢复后它的状态?

MHA主要是为了在主从复制环境下提供主的可用性,它会监控主要的状态,主宕机后,会在从中自动选择一个新主,其他的从会自动连接到新主上

恢复后它需要删除上次的故障切换记录,重新启动MHA

15、Nginx是怎样实现负载均衡的?它的模块的代码具体是什么,功能是什么?

通过upstream定义后端服务器组,在通过虚拟主机的location匹配客户端请求,根据请求不同向不同的后端服务器组进行转发,使用的模块为upstream,调度算法有轮询、ip_hash,最少连接

###

16、你为什么选择HAProxy,说一下它和起它负载均衡软件的区别

同时支持四层、七层调度,并发能力相对nginx, lvs要高

17、你的Keeplived是调用脚本实现监测HAProxy的吗?脚本是如何监测HAProxy正常工作的?监测项是什么?脚本大概是怎么写的描述一下。

通过脚本监测,脚本主要监测虚拟服务的状态,虚拟服务故障后,由脚本停止keepalived实现VIP转移

18、你在项目的配置过程中两台HAProxy服务器之间的防火墙是如何配置的?

不开防火墙

或者防火墙要配置放行vrrp协议数据,为了正常传播心跳

19、Apache日志中有哪些信息?

客户端地址、访问时间、请求方法、请求的文件名、HTTP协议版本、状态码、响应数据大小、超链接地址、客户端浏览器

1、你这个项目经验里写了一个毕业设计项目是关于docker的,简单介绍一下你这个毕业设计吧。

利用脚本搭建了一个系统,实现对容器、镜像的一键式拉取、管理、删除,容器的创建启动删除,还有对网络资源模式的管理。

2、那你说一下docker的几个核心组件

镜像、容器、仓库

3、虚拟机技术和docker技术有什么区别了

虚拟机技术要模拟出这个一套系统,是由用户态和内核态组成了,包括软件和硬件。但是docker不需要内核态,直接调用主机的内核态,不需要模拟硬件,只占用物理机的一个接口。

4、看你这项目里还写了一个Mycat的集群,你介绍介绍

我们先做规划,前端搭建Apache服务器,后台搭建两个sql数据库,配置主从服务器,然后在主服务器上配置mycat读写分离。

5、你这个主从服务器具体怎么实现的

我们先手动同步两个服务器的数据库数据,然后通过对IO进程和sql进程的配置进行同步,他的实现远离是将我们对数据库的修改命令写入binlog日志然后通过对binlog日志的同步实现的。

6、那如果从服务器出现问题了应该怎么解决呢,比如你说通过日志同步的,那主服务器执行了一条删除命令,但是从服务器没同步过去

我们需要先考虑是不是由于主服务器访问量过大,因为主从复制是单线程操作,主库的数据量太大,超过了从库的同步能力。或者是由于硬件问题比如磁盘或者网络延迟过大。

7、sql除了你说的binlog日志还有哪些日志

错误日志、查询日志、慢查询日志、二进制日志、中继日志、事备日志、重做日志、回滚日志

8、sql数据库操作分为哪几个部分

DDL定义、DML操纵、DQL查询、DCL控制、TCL事物

9、什么是主键、什么是索引、什么是约束

PRIMARY+KEY约束唯⼀地标识表中的每⼀⾏。它必须包含UNIQUE值

UNIQUE约束确保列中的所有值都不同。这为列提供了唯⼀性,并有助于唯⼀地标识每一行的代码语法可以跟主键互换使用。

索引就是快速查找一个表的一个列或多个列的数据。

10、你简单介绍一下inode号的概念

Inode就是linux里面的索引节点,系统通过inode号识别文件名

11、软连接inode号和硬连接的inode号一样吗

硬连接相同,软连接不同

12、软连接和硬连接的区别是啥

我们用windos距离,软连接大概是创建一个快捷方式,硬连接就是复制一份文件,所以当软连接源文件删除后,软连接也失效,但硬连接还能继续访问。

13、软连接和硬连接都可以跨文件系统吗,为什么

软连接可以,硬连接不能

硬连接是不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。相反都是软连接会重新建立一个inode,当然inode的结构跟其他的不一样,他只是 一个指明源文件的字符串信息。一旦删除源文件,那么软连接将变得毫无意义。而硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。(没答上)

14、怎么查看linux的程序或者进程

Ps、ss、top都可以

15、用ps查到的进程都有哪几种状态

运行状态、睡眠状态、停止状态、退出状态、跟踪状态

16、如果需要对一个文件夹里的所有文件实现一段内容的替换,你怎么做

可以写一个循环,循环条件就是文件名,执行sed命令替换内容

17、sed替换内容的时候是对源文件进行替换吗

不会,默认在内存中,要对源文件进行修改加-i参数

18、对一个文件里面的序号进行累加

awk ‘{print $1}’ awk ‘{sum+=$1}END{print sum}’

19、怎么实现程序的开机自启动

通过systemctl设置enable

20、当你没有systemctl权限的时候呢

修改etc下的rc.local文件

21、做了主从复制以后,从服务器出了问题怎么解决,比如同步binlog日志时中间有一条删除同步不过来了

可以在主服务器上查看这个缺失的操作,从二进制日志中找出来 ,放到从库上手动执行;