软件运维常见面试题

文章目录

1、请说出在TCP/IP五层参考模型中,从下网上分别指的是?

​ 答:物理层、数据链路层、网络层、传输层、应用层

2、请说出OSI七层参考模型中,从下往上分别指得是?

​ 答:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

3、交换机的工作原理中,不包含下列那个选项?

​ A、学习

​ B、广播

​ C、填充路由表

​ D、更新

答:C

4、请说一下,你在从事软件运维工作中的日常?

  1. 监测与维护系统。运维人员需要时刻关注系统运行状态,有异常情况及时发现和解决,保证系统稳定、高效运行。
  2. 及时处理系统故障。如数据库出现故障、服务器宕机等,及时跟进解决。需要掌握紧急救援措施,减少系统停机时间,提高用户体验。
  3. 对系统进行优化和升级。通过对系统性能指标的分析,发现瓶颈并及时优化。对于软件固件或版本更新,也需要及时升级以确保安全性、稳定性以及应用功能。
  4. 数据备份与恢复。运维人员需要定期备份重要数据,并能对数据丢失情况进行紧急恢复。
  5. 安全审计。对系统安全漏洞进行检查,规避和防范安全风险。同时,加强系统的安全措施,提高系统的安全性和稳定性。
  6. 做好通信交流,及时跟进用户反馈,尽量解决用户问题。

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、在软件运维中,需要注意哪些细节?请列举至少三点。

在软件运维中,需要注意以下细节:

  1. 安全性:保障系统的安全性是软件运维的重要任务之一。需要设置合适的权限和访问控制,防止数据泄露或被篡改。还需要定期更新补丁和升级软件,避免安全漏洞对系统造成影响。
  2. 监控和调优:监控系统的运行情况和性能表现,提前发现并解决潜在问题、优化系统,保障系统的稳定性和高效性。
  3. 日常维护:保持系统的正常运转,包括备份数据、清理日志、清理磁盘空间等。此外,还需要关注运行环境、硬件设备等方面,防止出现故障。

24、请谈一下你在软件运维工作中遇到的最大问题是什么,以及你是如何解决的?

我在软件运维的过程中遇到最大的问题是系统故障和性能问题。我曾经遇到过一次系统出现了严重的瓶颈,导致网站无法正常访问。我的解决方案如下:

  1. 快速定位问题:我花了一段时间仔细检查了系统的配置和运行情况,发现CPU、硬盘和内存的使用率都很高,导致系统无法正常工作。
  2. 确定优化方案:为了解决这个问题,我决定尝试优化数据库、调整系统配置和升级软件等方案。我首先使用优化器分析了数据库性能问题,然后清理了系统垃圾和无用数据,并且增加了一些缓存的设置,提高系统处理速度。
  3. 测试效果:我进行了一次性能测试,发现这些调整确实有效,并且系统的响应速度有了明显的改善。

25、假如在软件运维工作中客户提出了一个比较着急的问题,你会怎么解决?

作为一个运维工程师,急事处理应该是我们工作中常见的一个环节。如果客户提出了一个比较紧急的问题,我会采取以下措施进行解决:

  1. 立即回复客户,告知已经收到问题,并且正快速处理。
  2. 确认该问题是否属于自己任务范畴,如果不是,立即联系相关人员进行处理。
  3. 对问题进行初步分析,判断紧急程度,优先级别与解决方案,以保证最快速解决问题。
  4. 如果无法立即解决问题,及时反馈给客户,并提供一些可能可用的临时解决方案以减轻客户的损失。
  5. 最后,解决问题后,及时回馈客户,确认问题已经解决,并且帮助客户避免类似的问题发生。在解决问题过程中认真记录问题处理的过程和解决方案,以便后续参考。

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来进行中转。
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐