软件运维常见面试题
文章目录
- 软件运维常见面试题
-
- 1、请说出在TCP/IP五层参考模型中,从下网上分别指的是?
- 2、请说出OSI七层参考模型中,从下往上分别指得是?
- 3、交换机的工作原理中,不包含下列那个选项?
- 4、请说一下,你在从事软件运维工作中的日常?
- 5、假如在LINUX操作系统中,你想要递归查询目录/media,应该使用那个命令呢?
- 6、假如你在工作中你的运维文档突然忘记了放在哪里,只记得名字叫做operation.md,你要怎么查找
- 7、现在有一条命令cd /etc/sysconfig/network-scripts,如何将这条命令简化呢?
- 8、LINUX系统中如何只是删除空目录?
- 9、在Linux系统中,/dev/sdb表示什么含义?
- 10、请问在LINUX系统中哪个符号可以匹配任意个字符?
- 11、下列选项中关于cp和mv命令的区别说法正确的是?(多选)
- 12、Linux系统中,/etc/passwd文件的第六个字段表示什么含义?
- 13、在CentOS系统如何停止服务crond
- 14、作为软件运维工程师,如何查看系统CPU平均负载
- 15、sshd服务的默认端口号是?
- 16、NGINX虚拟WEB主机的类型有?(多选)
- 17、下列选项中哪些是NGINX的功能?(多选)
- 18、关于tomcat启动说法正确的是?(多选)
- 19、下列选项中,属于vim文本编辑器模式的是?(多选)
- 20、在软件运维过程中,以下哪些任务属于常见的监控和调优任务?
- 21、在Linux系统中如何查找某命令的程序文件?()
- 22、在Linux系统中格式化磁盘分区的命令为?()
- 23、在软件运维中,需要注意哪些细节?请列举至少三点。
- 24、请谈一下你在软件运维工作中遇到的最大问题是什么,以及你是如何解决的?
- 25、假如在软件运维工作中客户提出了一个比较着急的问题,你会怎么解决?
- 26、在Linux系统中哪些方式可以将标准输出和错误输出都重定向到文件?
- 27、shell中正则表达式符号: *、+、?、[]、[^]、{n}分别代表什么含义?
- 28、shell中变量分为哪些类型?
- 29、在Shell中,下列选项满足自定义变量条件的是?
- 30、工作中你都写过什么Shell脚本?
- 31、编写脚本使用ping命令检测一组IP地址判断是否处于活跃状态。
- 32、Nginx支持哪些类型的虚拟主机,如何配置?
- 33、Nginx支持哪些类型代理服务器,如何配置?
- 34、HTTP常见状态码有哪些,分别是什么含义?
- 35、什么是灰度发布
- 36、Web请求在Tomcat请求中的请求流程是怎么样的?
- 37、你在工作中是怎么监控Tomcat的内存使用情况?
- 38、什么是动态资源,什么是静态资源?
- 39、zabbix监控平台有哪些组件?
- 40、zabbix的两种监控模式分别是什么,有什么区别?
- 41、prometheus各个组件的作用分别是什么?
1、请说出在TCP/IP五层参考模型中,从下网上分别指的是?
答:物理层、数据链路层、网络层、传输层、应用层
2、请说出OSI七层参考模型中,从下往上分别指得是?
答:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
3、交换机的工作原理中,不包含下列那个选项?
A、学习
B、广播
C、填充路由表
D、更新
答:C
4、请说一下,你在从事软件运维工作中的日常?
- 监测与维护系统。运维人员需要时刻关注系统运行状态,有异常情况及时发现和解决,保证系统稳定、高效运行。
- 及时处理系统故障。如数据库出现故障、服务器宕机等,及时跟进解决。需要掌握紧急救援措施,减少系统停机时间,提高用户体验。
- 对系统进行优化和升级。通过对系统性能指标的分析,发现瓶颈并及时优化。对于软件固件或版本更新,也需要及时升级以确保安全性、稳定性以及应用功能。
- 数据备份与恢复。运维人员需要定期备份重要数据,并能对数据丢失情况进行紧急恢复。
- 安全审计。对系统安全漏洞进行检查,规避和防范安全风险。同时,加强系统的安全措施,提高系统的安全性和稳定性。
- 做好通信交流,及时跟进用户反馈,尽量解决用户问题。
5、假如在LINUX操作系统中,你想要递归查询目录/media,应该使用那个命令呢?
A、ls -l /media
B、ls -A /media
C、ls -R /media
D、ls -ld /media
答案:C
6、假如你在工作中你的运维文档突然忘记了放在哪里,只记得名字叫做operation.md,你要怎么查找
A、find / -size ‘operation.md’
B、find / -name ‘operation.md’
C、find / -mtime ‘operation.md’
D、find / -user ‘operation.md’
答案:B
7、现在有一条命令cd /etc/sysconfig/network-scripts,如何将这条命令简化呢?
A、使用alias定义别名
B、直接使用cd命令
C、直接运行/etc/sysconfig/network-scripts
D、使用unalias定义别名
答案:A
8、LINUX系统中如何只是删除空目录?
A、rm -rf
B、rmdir
C、rm
D、rf -rm
答案:B
9、在Linux系统中,/dev/sdb表示什么含义?
A、SCSI接口类型的第一块磁盘
B、SCSI接口类型的第二块磁盘
C、IDE接口类型的第二块磁盘
D、PCle接口类型的第二块磁盘
答案:B
10、请问在LINUX系统中哪个符号可以匹配任意个字符?
A、*
B、?
C、!
D、@
答案:A
11、下列选项中关于cp和mv命令的区别说法正确的是?(多选)
A、cp可以拷贝会使源文件消失
B、mv移动会使源文件消失
C、cp不可以对源文件进行改名
D、mv可以对源文件进行改名
答案:BCD
12、Linux系统中,/etc/passwd文件的第六个字段表示什么含义?
A、描述信息
B、家目录
C、密码占位符
D、解释器
答案:B
13、在CentOS系统如何停止服务crond
A、systemctl stop crond
B、ps aux | grep crond
C、pstree crond
D、stop crond
答案:A
14、作为软件运维工程师,如何查看系统CPU平均负载
A、uptime
B、ls
C、lsblk
D、tree
答案:A
15、sshd服务的默认端口号是?
A、80
B、90
C、21
D、22
答案:D
16、NGINX虚拟WEB主机的类型有?(多选)
A、基于域名
B、基于端口
C、基于IP
D、基于网络
答案:ABC
17、下列选项中哪些是NGINX的功能?(多选)
A、做web服务
B、做四层代理服务
C、做路由转发
D、做七层代理服务
答案:ABD
18、关于tomcat启动说法正确的是?(多选)
A、tomcat在启动过程中需要依赖与JDk
B、tomcat支持php动态页面
C、tomcat在启动过程中需要大量随机数
D、tomcat启动之后默认只会监听8080端口
答案:AC
19、下列选项中,属于vim文本编辑器模式的是?(多选)
A、命令模式
B、插入模式
C、修改模式
D、末行模式
答案:ABD
20、在软件运维过程中,以下哪些任务属于常见的监控和调优任务?
A. 数据备份
B. 用户培训
C. 运行日志分析
D. 代码编写
答案:C
解析:监控和调优是软件运维的重要任务之一,主要是为了保障系统的稳定性和高效性。其中,运行日志分析是常见的监控和调优任务,通过对系统运行日志的分析,可以及时发现系统的异常状况和性能瓶颈,进行相应的调优和优化。数据备份是保障数据安全的重要措施,但并不属于监控和调优的任务;而用户培训和代码编写则是开发和实施阶段的任务,不属于软件运维的范畴。
21、在Linux系统中如何查找某命令的程序文件?()
A、which
B、ls
C、find
D、cat
答案:A
22、在Linux系统中格式化磁盘分区的命令为?()
A、parted
B、blkid
C、mkfs
D、mount
答案:C
23、在软件运维中,需要注意哪些细节?请列举至少三点。
在软件运维中,需要注意以下细节:
- 安全性:保障系统的安全性是软件运维的重要任务之一。需要设置合适的权限和访问控制,防止数据泄露或被篡改。还需要定期更新补丁和升级软件,避免安全漏洞对系统造成影响。
- 监控和调优:监控系统的运行情况和性能表现,提前发现并解决潜在问题、优化系统,保障系统的稳定性和高效性。
- 日常维护:保持系统的正常运转,包括备份数据、清理日志、清理磁盘空间等。此外,还需要关注运行环境、硬件设备等方面,防止出现故障。
24、请谈一下你在软件运维工作中遇到的最大问题是什么,以及你是如何解决的?
我在软件运维的过程中遇到最大的问题是系统故障和性能问题。我曾经遇到过一次系统出现了严重的瓶颈,导致网站无法正常访问。我的解决方案如下:
- 快速定位问题:我花了一段时间仔细检查了系统的配置和运行情况,发现CPU、硬盘和内存的使用率都很高,导致系统无法正常工作。
- 确定优化方案:为了解决这个问题,我决定尝试优化数据库、调整系统配置和升级软件等方案。我首先使用优化器分析了数据库性能问题,然后清理了系统垃圾和无用数据,并且增加了一些缓存的设置,提高系统处理速度。
- 测试效果:我进行了一次性能测试,发现这些调整确实有效,并且系统的响应速度有了明显的改善。
25、假如在软件运维工作中客户提出了一个比较着急的问题,你会怎么解决?
作为一个运维工程师,急事处理应该是我们工作中常见的一个环节。如果客户提出了一个比较紧急的问题,我会采取以下措施进行解决:
- 立即回复客户,告知已经收到问题,并且正快速处理。
- 确认该问题是否属于自己任务范畴,如果不是,立即联系相关人员进行处理。
- 对问题进行初步分析,判断紧急程度,优先级别与解决方案,以保证最快速解决问题。
- 如果无法立即解决问题,及时反馈给客户,并提供一些可能可用的临时解决方案以减轻客户的损失。
- 最后,解决问题后,及时回馈客户,确认问题已经解决,并且帮助客户避免类似的问题发生。在解决问题过程中认真记录问题处理的过程和解决方案,以便后续参考。
26、在Linux系统中哪些方式可以将标准输出和错误输出都重定向到文件?
答案:
命令 &> 文件名
命令 &>> 文件名
27、shell中正则表达式符号: *、+、?、[]、[^]、{n}分别代表什么含义?
答案:
*表示匹配前面的字符出现了任意次(包括0次)
+表示匹配前面的字符出现了至少1次(1次或多次)
? 表示匹配前面的字符出现了0次或1次
[] 表示集合,匹配集合中的任意单个字符
[^] 表示对集合取反
{n} 表示精确匹配前面的字符出现了n次
28、shell中变量分为哪些类型?
答案:自定义变量、环境变量、位置变量、预定义变量
29、在Shell中,下列选项满足自定义变量条件的是?
A、1a2b3c=“data”
B、a*tx=“data”
C、dxc_1c=“data”
D、123=“data”
答案:C
30、工作中你都写过什么Shell脚本?
参考答案:
1)监控脚本(监控系统、监控服务、监控硬件信息、监控性能、安全监控等)
2)系统初始化脚本(创建目录,创建账户,安装软件包,设置权限,修改内核参数等)
3)一键部署(源码安装脚本)
4)备份脚本(自动备份数据库,备份网站数据,备份日志,备份配置文件等)
5)日志分析脚本(分析日志数据,汇总并统计相关信息,如PV、UV等)
6)…
31、编写脚本使用ping命令检测一组IP地址判断是否处于活跃状态。
- 要求(range:192.168.1.200-192.168.1.220,一个IP发送4个ping包,ping的过程不能输出信息到终
端)?
参考答案:
#!/bin/bash
for i in {200..220}
do
ping -c 4 -i 0.2 -W 1 192.168.1.$i &>/dev/null
if [ $? -ne 0 ];then
echo "192.168.1.$i is down"
fi
done
32、Nginx支持哪些类型的虚拟主机,如何配置?
答案:基于端口的虚拟主机、基于域名的虚拟主机、基于IP的虚拟主机。
server {
listen IP地址:端口;
server_name 域名;
location / {
root html;
index index.html
}
}
33、Nginx支持哪些类型代理服务器,如何配置?
答案:基于7层代理、基于4层代理
定义集群服务器模板配置:
upstream servers {
server 后端真实服务器IP:端口;
server 后端真实服务器IP:端口;
}
调用集群的配置文件模板:
7层调度:proxy_pass http://servers;
4层调度:proxy_pass servers;
34、HTTP常见状态码有哪些,分别是什么含义?
答案:
状态码 |
功能描述 |
200 |
一切正常 |
301 |
永久重定向 |
302 |
临时重定向 |
401 |
用户名或密码错误 |
403 |
禁止访问(客户端IP被拒绝) |
404 |
网页文件不存在 |
414 |
请求url头部过长 |
500 |
服务器内部错误 |
35、什么是灰度发布
答案:
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。
让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么
逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候
就可以发现、调整问题,以保证其影响度。灰度期:灰度发布开始到结束期间的这一段时间,称为灰度
期。
36、Web请求在Tomcat请求中的请求流程是怎么样的?
答案:
1)浏览器输入URL地址;
2)查询本机hosts文件寻找IP;
3)查询DNS服务器寻找IP;
4)向该IP发送Http请求;
5)Tomcat容器解析主机名;
6)Tomcat容器解析Web应用;
7)Tomcat容器解析资源名称;
8)Tomcat容器获取资源;
9)Tomcat响应浏览器。
37、你在工作中是怎么监控Tomcat的内存使用情况?
答案:
使用JDK自带的jconsole可以比较明了的看到内存的使用情况,线程的状态,当前加载的类的总量等;
JDK自带的jvisualvm可以下载插件(如GC等),可以查看更丰富的信息。如果是分析本地的Tomcat的话,
还可以进行内存抽样等,检查每个类的使用情况。
38、什么是动态资源,什么是静态资源?
答案:
- 静态资源:可以理解为前端的固定页面,这里面包含HTML、CSS、JS、图片等等,不需要查数据库也不
需要程序处理,直接就能够显示的页面,如果想修改内容则必须修改页面,但是访问效率相当高。
- 动态资源:一般客户端请求的动态资源,先将请求交于web容器, 这些资源不可以在客户端直接打开,
需要在服务器运行,甚至需要web容器连接数据库,数据库处理数据之后,将内容交给web服务器,
web服务器返回给客户端解析渲染处理。
39、zabbix监控平台有哪些组件?
答案:
- Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其
组织进行
- Database Storage:专用于存储所有配置信息,以及有zabbix收集的数据
- Web interface (frontend): zabbix的GUI接口(网页),通常与server运行在同一台机器上
- Proxy:可选组件,常用于分布式监控环境中,代理Server收集部分被监控数据并统一 发往Server端
- Agent:部署在被监控主机上,负责收集本地数据并发往Server端或者Proxy端
40、zabbix的两种监控模式分别是什么,有什么区别?
答案:
- zabbix agent检测分为两种模式:主动模式和被动模式
- 被动模式:由server向agent发出指令获取数据, 即agent被动的去获取数据并返回给server ,server
周期性的向agent 索取数据, 这总模式的最大问题就是会加大server的工作量, 在数百台服务器的环境
下 server不能及时获取到最新数据, 但这也是默认的工作方式。
- 主动模式,不需要监控服务器连接被监控主机索取监控数据,而是被监控端,按时间,周期性向监控服
务器主动提交数据。
41、prometheus各个组件的作用分别是什么?
答案:
- Prometheus Server:
Prometheus Sever是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储及查询
- Exporters:Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server , Prometheus Server 通过访问该Exporter提供的Endpoint端点,即可以获取到需要采集的监控数据。
- AlertManager:
在Prometheus Server中支持基于Prom QL创建告警规则,如果满足Prom QL定义的规则,则会产生一
条告警。
- PushGateway:
Prometheus数据采集基于Prometheus Server从Exporter pull数据,因此当网络环境不允许
Prometheus Server和Exporter进行通信时,可以使用PushGateway来进行中转。