全运维工程师应聘面试题总结.docx

上传人:b****1 文档编号:2004817 上传时间:2023-05-02 格式:DOCX 页数:30 大小:1.48MB
下载 相关 举报
全运维工程师应聘面试题总结.docx_第1页
第1页 / 共30页
全运维工程师应聘面试题总结.docx_第2页
第2页 / 共30页
全运维工程师应聘面试题总结.docx_第3页
第3页 / 共30页
全运维工程师应聘面试题总结.docx_第4页
第4页 / 共30页
全运维工程师应聘面试题总结.docx_第5页
第5页 / 共30页
全运维工程师应聘面试题总结.docx_第6页
第6页 / 共30页
全运维工程师应聘面试题总结.docx_第7页
第7页 / 共30页
全运维工程师应聘面试题总结.docx_第8页
第8页 / 共30页
全运维工程师应聘面试题总结.docx_第9页
第9页 / 共30页
全运维工程师应聘面试题总结.docx_第10页
第10页 / 共30页
全运维工程师应聘面试题总结.docx_第11页
第11页 / 共30页
全运维工程师应聘面试题总结.docx_第12页
第12页 / 共30页
全运维工程师应聘面试题总结.docx_第13页
第13页 / 共30页
全运维工程师应聘面试题总结.docx_第14页
第14页 / 共30页
全运维工程师应聘面试题总结.docx_第15页
第15页 / 共30页
全运维工程师应聘面试题总结.docx_第16页
第16页 / 共30页
全运维工程师应聘面试题总结.docx_第17页
第17页 / 共30页
全运维工程师应聘面试题总结.docx_第18页
第18页 / 共30页
全运维工程师应聘面试题总结.docx_第19页
第19页 / 共30页
全运维工程师应聘面试题总结.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

全运维工程师应聘面试题总结.docx

《全运维工程师应聘面试题总结.docx》由会员分享,可在线阅读,更多相关《全运维工程师应聘面试题总结.docx(30页珍藏版)》请在冰点文库上搜索。

全运维工程师应聘面试题总结.docx

全运维工程师应聘面试题总结

运维工程师应聘面试题总结

一、linux

1.linux系统启动流程

∙第一步:

开机自检,加载BIOS

∙第二步:

读取MBR

∙第三步:

BootLoader grub引导菜单

∙第四步:

加载kernel内核

∙第五步:

init进程依据inittab文件夹来设定运行级别

∙第六步:

init进程执行rc.sysinit

∙第七步:

启动内核模块

∙第八步:

执行不同运行级别的脚本程序

∙第九步:

执行/etc/rc.d/rc.lo

2.linux文件类型

∙-常规文件,即file

∙d 目录文件

∙b blockdevice即块设备文件,如硬盘;支持以block为单位进行随机访问

∙ccharacterdevice即字符设备文件,如键盘支持以character为单位进行线性访问

∙l symboliclink即符号链接文件,又称软链接文件

∙p pipe即命名管道文件

∙s socket即套接字文件,用于实现两个进程进行通信

3.centos6和7怎么将源码安装的程序添加到开机自启动?

∙通用方法:

编辑/etc/rc.d/rc.local文件,在文件末尾添加启动服务命令

∙centos6:

①进入到/etc/rc.d/init.d目录下,②新建一个服务启动脚本,脚本中指定chkconfig参数,③添加执行权限,④执行chkconfig--add添加服务自启动

∙centos7:

①进入到/usr/lib/systemd/system目录下,②新建自定义服务文件,文件中包含[Unit][Service][Install]相关配置,然后添加下执行权限,③执行systemctlenable服务名称

4.简述lvm,如何给使用lvm的/分区扩容?

∙功能:

可以对磁盘进行动态管理。

动态按需调整大小

∙概念:

①PV-物理卷:

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。

②VG-卷组:

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。

一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

③LV-逻辑卷:

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。

系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

∙给/分区扩容步骤:

①添加磁盘

②使用fdisk命令对新增加的磁盘进行分区

③分区完成后修改分区类型为lvm

④使用pvcreate创建物理卷

⑤使用vgextend命令将新增加的分区加入到根目录分区中

⑥使用lvextend命令进行扩容

⑦使用xfs_growfs调整卷分区大小

5.为何du和df统计结果不一致?

∙用户删除了大量的文件被删除后,在文件系统目录中已经不可见了,所以du就不会再统计它。

∙然而如果此时还有运行的进程持有这个已经被删除的文件句柄,那么这个文件就不会真正在磁盘中被删除,分区超级块中的信息也就不会更改,df仍会统计这个被删除的文件。

∙可通过lsof命令查询处于deleted状态的文件,被删除的文件在系统中被标记为deleted。

如果系统有大量deleted状态的文件,会导致du和df统计结果不一致。

6.如何升级内核?

∙方法一

#添加第三方yum源进行下载安装。

Centos6YUM源:

http:

//www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

Centos7YUM源:

http:

//www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

#先导入elrepo的key,然后安装elrepo的yum源:

rpm-importhttps:

//www.elrepo.org/RPM-GPG-KEY-elrepo.org

rpm-Uvhhttp:

//www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

#查看可用的内核相关包

yum--disablerepo="*"--enablerepo="elrepo-kernel"listavailable

yum-y--enablerepo=elrepo-kernelinstall

∙方法二

#通过下载kernelimage的rpm包进行安装。

官方Centos6:

http:

//elrepo.org/linux/kernel/el6/x86_64/RPMS/

官方Centos7:

http:

//elrepo.org/linux/kernel/el7/x86_64/RPMS/

#获取下载链接进行下载安装即可

wgethttps:

//elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-4.4.185-1.el7.elrepo.x86_64.rpm

rpm-ivhkernel-lt-4.4.185-1.el7.elrepo.x86_64.rp

#查看默认启动顺序

[root@localhost~]#awk-F\''$1=="menuentry"{print$2}'/etc/grub2.cfg

CentOSLinux(5.2.2-1.el7.elrepo.x86_64)7(Core)

CentOSLinux(4.4.182-1.el7.elrepo.x86_64)7(Core)

CentOSLinux(3.10.0-957.21.3.el7.x86_64)7(Core)

CentOSLinux(3.10.0-957.10.1.el7.x86_64)7(Core)

CentOSLinux(3.10.0-327.el7.x86_64)7(Core)

CentOSLinux(0-rescue-e34fb4f1527b4f2d9fc75b77c016b6e7)7(Core)

由上面可以看出新内核(4.12.4)目前位置在0,原来的内核(3.10.0)目前位置在1

#设置默认启动

[root@localhost~]#grub2-set-default0  //0代表当前第一行,也就是4.12.4版本

#重启验证

7.nginx日志访问量前十的ip怎么统计?

awk'{array[$1]++}END{for(ipinarray)printip,array[ip]}'access.log|sort-k2-rn|head

8.如何删除/var/log/下.log结尾的30天前的日志?

find/var/log/-typef-name.*.log-mtime30|xargsrm-f

9.ansible有哪些模块?

功能是什么?

∙copy:

拷贝文件到被控端

∙cron:

定时任务

∙fetch:

拷贝被控端文件到本地

∙file:

文件模块

∙group:

用户组模块

∙user:

用户模块

∙hostname:

主机名模块

∙script:

脚本模块

∙service:

服务启动模块

∙command:

远程执行命令模块

∙shell:

远程执行命令模块

∙yum:

安装包组模块

∙setup:

查看主机系统信息

10.nginx为什么比apache快?

∙nginx采用epoll模型

∙apache采用select模型

11.四层负载和七层负载区别是什么?

∙四层基于IP+端口进行转发

∙七层就是基于URL等应用层信息的负载均衡

12.lvs有哪些工作模式?

哪个性能高?

∙dr:

直接路由模式,请求由LVS接受,由真实提供服务的服务器直接返回给用户,返回的时候不经过LVS。

(性能最高)

∙tun:

隧道模式,客户端将访问vip报文发送给LVS服务器。

LVS服务器将请求报文重新封装,发送给后端真实服务器。

后端真实服务器将请求报文解封,在确认自身有vip之后进行请求处理。

后端真实服务器在处理完数据请求后,直接响应客户端。

∙nat:

网络报的进出都要经过LVS的处理。

LVS需要作为RS的网关。

当包到达LVS时,LVS做目标地址转换(DNAT),将目标IP改为RS的IP。

RS接收到包以后,仿佛是客户端直接发给它的一样。

RS处理完,返回响应时,源IP是RSIP,目标IP是客户端的IP。

这时RS的包通过网关(LVS)中转,LVS会做源地址转换(SNAT),将包的源地址改为VIP,这样,这个包对客户端看起来就仿佛是LVS直接返回给它的。

客户端无法感知到后端RS的存在。

∙fullnat模式:

fullnat模式和nat模式相似,但是与nat不同的是nat模式只做了两次地址转换,fullnat模式却做了四次。

13.lvsnginxhaproxykeeplived区别,优缺点?

这个自行XX吧,我就不信在这细说了

14.如下url地址,各个部分的含义

∙https:

使用https加密协议访问

∙请求地址

∙?

word&ie=utf-8:

get请求的参数,多个参数&连接

15.tomcat各个目录含义,如何修改端口,如何修改内存数?

∙bin存放tomcat命令

∙conf存放tomcat配置文件

∙lib存放tomcat运行需要加载的jar包

∙log存在Tomcat运行产生的日志

∙temp运行过程中产生的临时文件

∙webapps站点目录

∙work存放tomcat运行时的编译后的文件

∙conf/server.xml修改端口号

∙bin/catalina.sh修改jvm内存

16.nginx反向代理时,如何使后端获取真正的访问来源ip?

在location配置段添加以下内容:

proxy_set_headerHost$http_host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Proto$scheme;

17.nginx负载均衡算法有哪些?

∙rr轮训

∙weight加权轮训

∙ip_hash静态调度算法

∙fair动态调度算法

∙url_hashurl哈希

∙leat_conn最小连接数

18.如何进行压力测试?

例如:

模拟10个用户,对XX首页发起总共100次请求。

测试命令:

ab-n100-c10

19.curl命令如何发送https请求?

如何查看response头信息?

如何发送get和post表单信息?

∙发送https请求:

curl--tlsv1'

∙response头信息:

curl-I

∙get:

curl请求地址?

key1=value1&key2=value2&key3=value3

∙post:

curl-d"key1=value1&key2=value2&key3=value3"

二、mysql

1.索引的为什么使查询加快?

有啥缺点?

默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。

如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查询的速度

缺点:

·创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加

·索引需要占物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间,如果需要建立聚簇索引,那么需要占用的空间会更大

·以表中的数据进行增、删、改的时候,索引也要动态的维护,这就降低了整数的维护速度

2.sql语句左外连接右外连接内连接全连接区别

3.mysql数据备份方式,如何恢复?

你们的备份策略是什么?

∙物理完全备份

备份所有数据库文件:

/var/lib/mysql/*

备份所有binlog文件:

/var/lib/mysql/mysql-bin.*

备份选项文件:

/etc/f

∙mysqldump逻辑备份

mysqldump-uroot-p--all-databases>/backup/mysqldump/all.db

∙物理备份恢复

mv/var/lib/mysql/var/lib/mysql.old#先把原来的数据目录改名

cp-a/backups/mysql/var/lib

∙逻辑备份数据恢复

mysql>usedb_name

mysql>source/backup/mysqldump/db_name.db

4.如何配置数据库主从同步,实际工作中是否遇到数据不一致问题?

如何解决?

为每个服务器配置唯一值的server-id

∙主库

开启binlog日志

创建主从复制用户

查看master的状态

∙从库

changemasterto设置主库信息

startslave开始复制

5.mysql约束有哪些?

∙非空约束

∙唯一约束

∙主键约束

∙外键约束

6.二进制日志(binlog)用途?

BINLOG记录数据库的变更过程。

例如创建数据库、建表、修改表等DDL操作、以及数据表的相关DML操作,这些操作会导致数据库产生变化,开启binlog以后导致数据库产生变化的操作会按照时间顺序以"事件"的形式记录到binlog二进制文件中

7.mysql数据引擎有哪些?

∙常用的myisam、innodb

∙区别:

InnoDB支持事务,MyISAM不支持,这一点是非常之重要。

事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了;

MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及到安全性较高的应用;

InnoDB支持外键,MyISAM不支持;

MyISAM是默认引擎,InnoDB需要指定;

InnoDB不支持FULLTEXT类型的索引;

InnoDB中不保存表的行数,如selectcount(*)fromtable时,InnoDB;需要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。

注意的是,当count(*)语句包含where条件时MyISAM也需要扫描整个表;

对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引;

清空整个表时,InnoDB是一行一行的删除,效率非常慢。

MyISAM则会重建表;

InnoDB支持行锁(某些情况下还是锁整表,如updatetableseta=1whereuserlike'%lee%'

8.如何查询mysql数据库存放路径?

mysql>showvariableslike'datadir%';

+---------------+------------------------+

|Variable_name|Value|

+---------------+------------------------+

|datadir|/usr/local/mysql/data/|

+---------------+------------------------+1rowinset(0.00sec)

9.mysql数据库文件后缀名有哪些?

用途什么?

∙myisam

.frm文件:

保护表的定义

.myd:

保存表的数据

.myi:

表的索引文件

∙innodb

.frm:

保存表的定义

.ibd:

表空间

10.如何修改数据库用户的密码?

∙mysql8之前

setpasswordfor用户名@localhost=password('新密码');

mysqladmin-u用户名-p旧密码password新密码

updateusersetpassword=password('123')whereuser='root'andhost='localhost';

∙mysql8之后

#mysql8初始对密码要求高,简单的字符串不让改。

先改成:

MyNewPass@123;

alteruser'root'@'localhost'identifiedby'MyNewPass@123';

#降低密码难度

setglobalvalidate_password.policy=0;

setglobalvalidate_password.length=4;

#修改成简易密码

alteruser'root'@'localhost'IDENTIFIEDBY'1111';

11.如何修改用户权限?

如何查看?

∙授权:

grantallon*.*touser@'%'identifiedby'passwd'

∙查看权限

showgrantsforuser@'%';

三、nosql

1.redis数据持久化有哪些方式?

∙rdb

∙aof

2.redis集群方案有哪些?

∙官方cluster方案

∙twemproxy代理方案

∙哨兵模式

∙codis客户端分片

3.redis如何进行数据备份与恢复?

∙备份

redis127.0.0.1:

6379>SAVE

创建redis备份文件也可以使用命令BGSAVE,该命令在后台执行。

∙还原

只需将备份文件(dump.rdb)移动到redis安装目录并启动服务即可

redis127.0.0.1:

6379>CONFIGGETdir

1)"dir"

2)"/usr/local/redis/bin"

4.MongoDB如何进行数据备份?

mongoexport/mongoimport

mongodump/mongorestore

5.kafka为何比redisrabbitmq快?

这个大家自行XX,在这就不赘述了

四、docker

1.dockerfile有哪些关键字?

用途是什么?

2.如何减小dockerfile生成镜像体积?

∙尽量选取满足需求但较小的基础系统镜像,例如大部分时候可以选择debian:

wheezy或debian:

jessie镜像,仅有不足百兆大小;

∙清理编译生成文件、安装包的缓存等临时文件;

∙安装各个软件时候要指定准确的版本号,并避免引入不需要的依赖;

∙从安全角度考虑,应用要尽量使用系统的库和依赖;

∙如果安装应用时候需要配置一些特殊的环境变量,在安装后要还原不需要保持的变量值;

3.dockerfile中CMD与ENTRYPOINT区别是什么?

∙CMD和ENTRYPOINT指令都是用来指定容器启动时运行的命令。

∙指定ENTRYPOINT指令为exec模式时,CMD指定的参数会作为参数添加到ENTRYPOINT指定命令的参数列表中。

4.dockerfile中COPY和ADD区别是什么?

∙COPY指令和ADD指令都可以将主机上的资源复制或加入到容器镜像中

∙区别是ADD可以从远程URL中的资源不会被解压缩。

∙如果是本地的压缩包ADD进去会被解压缩

5.docker的cs架构组件有哪些?

6.docker网络类型有哪些?

∙host模式

∙container模式

∙none模式

∙bridge模式

7.如何配置docker远程访问?

∙vim/lib/systemd/system/docker.service

∙在ExecStart=后添加配置,注意,需要先空格后,再输入-Htcp:

//0.0.0.0:

2375-Hunix:

///var/run/docker.sock

8.docker核心namespaceCGroups联合文件系统功能是什么?

∙namespace:

资源隔离

∙cgroup:

资源控制

∙联合文件系统:

支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下

9.命令相关:

导入导出镜像,进入容器,设置重启容器策略,查看镜像环境变量,查看容器占用资源

∙导入镜像dockerload-ixx.tar

∙导出镜像dockersave-oxx.tarimage_name

∙进入容器dockerexec-it容器命令/bin/bash

∙设置容器重启策略启动时--restart选项

∙查看容器环境变量dockerexec{containerID}env

∙查看容器资源占用dockerstatstest2

10.构建镜像有哪些方式?

∙dockerfile

∙commit提交为镜像

11.docker和vmware虚拟化区别?

五、kubernetes

1.k8s的集群组件有哪些?

功能是什么?

2.kubectl命令相关:

如何修改副本数,如何滚动更新和回滚,如何查看pod的详细信息,如何进入pod交互?

∙修改副本数kubectlscaledeploymentredis--replicas=3

∙活动更新kubectlsetimagedeploymentsmyapp-deploymyapp=myapp:

v2

∙回滚kubectlrolloutundodeploymentsmyapp-deploy

∙查看pod详细信息kubectldescribepods/

∙进入pod交互kubectlexec-it-cbash

3.etcd数据如何备份?

∙etcdctl--endpoints="https:

//192.168.32.129:

2379,https:

//192.168.32.130:

2379,192.168.32.128:

2379"--cacert=/etc/kubernetes/cert/ca.pem--key=/etc/etcd/cert/etcd-key.pem--cert=/etc/etcd/cert/etcd.pemsnapshotsavesnashot1.db

∙Snapshotsavedatsnashot1.db

4.k8s控制器有哪些?

∙副本集(ReplicaSet)

∙部署(Deployment)

∙状态集(StatefulSet)

∙Daemon集(DaemonSet)

∙一次任务(Job)

∙计划任务(CronJob)

∙有状态集(Stateful

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2