运维工程师面试题汇总
本篇按主题将源文件《面试题汇总.txt》中的题目重新分类整理:Linux 基础与命令、网络、进程与存储、Web 服务与中间件、MySQL 数据库、Docker、运维经验,以及填空题。原文给出答案的题目均保留并整理答案;原文留空的题目只列题。
一、Linux 基础与命令
1. 输出文本的偶数行
awk '!(NR%2)' /etc/passwd
sed -n '2~2p' /etc/passwd
2. 使用 ps 查看指定 PID(示例 pid=8000)进程的启动时间
ps -aux | grep 8000
3. 写一个 crontab 语句,让系统每小时和时间服务器 10.10.10.1 同步一次
1 * * * * ntpdate 10.10.10.1
4. 当前目录、上层目录、主目录如何表示?切换目录用什么命令?
- 当前目录:
./ - 上层目录:
../ - 主目录:
~/ - 切换目录:
cd
5. 怎么查看当前进程?怎么执行退出?怎么查看当前路径?
ps exit pwd
6. 怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 ID?查看指定帮助用什么命令?
- 清屏:
clear - 退出当前命令:
Ctrl+C - 睡眠/挂起:
Ctrl+Z(fg恢复前台,bg后台运行) - 查看当前用户 ID:
id - 查看帮助:
man
7. ls 命令的功能及常用参数
列出当前目录下所有文件和文件夹。常用参数:
-l:以长格式显示详细信息;-a:显示所有文件(包含隐藏文件);-h:以人类可读方式显示大小。
8. 建立软链接(快捷方式)和硬链接的命令
ln -s 源文件 目标文件 # 软链接
ln 源文件 目标文件 # 硬链接
9. 创建目录、创建文件、复制文件分别用什么命令?
mkdir touch cp
10. 终端对应哪个文件?黑洞文件对应哪个?
/dev/tty /dev/null
11. 移动文件、改名分别用什么命令?
- 移动:
mv - 改名:
mv;批量改名可用rename
12. 复制文件用哪个命令?连同文件夹一起复制?需要提示功能?
cp cp -r cp -vr
13. 删除文件?连同目录及目录下文件一块删除?删除空文件夹?
rm rm -rf rmdir
14. Linux 下有哪些通配符,含义是什么?
?:匹配单个字符;*:匹配多个字符;[charset]:匹配字符集中的单个字符,如[a-z]、[A-Z]。
15. 用什么命令统计文件内容(行号、单词数、字节数)?
wc -l 文件 # 行数
wc -w 文件 # 单词数
wc -c 文件 # 字节数
16. 怎么让一个命令在后台运行?
在命令末尾加上 &。
17. 怎么利用 ps 显示所有进程?怎么查看指定进程信息?
ps -aux
ps -ef
ps -ef | grep pid
18. 专门用来查看后台任务的命令?
jobs -l
19. 终止进程用什么命令?常用参数?
kill -9 PID
20. 搜索文件用什么命令?格式?
find 指定目录 指定条件 指定动作
whereis 文件名
21. 查看当前谁在使用主机?查找自己所在终端的命令?
who
who am i
22. 使用什么命令查看用过的命令列表?
history
23. 查看磁盘使用空间、空闲空间?
df -hl
24. 查看 IP 地址及接口信息?
ip addr # 或 ifconfig
25. 查看各类环境变量?
env
26. 通过什么命令查找可执行命令的位置?
which 命令
whereis 命令
27. 怎么对命令取别名?
alias 别名='命令'
28. du 和 df 的定义与区别
du:显示目录和文件的大小;df:显示文件系统整体的使用情况(所有挂载点)。
29. 怎样一页一页查看大文件?
more 文件
less 文件
二、网络
30. OSI 七层模型(按顺序)
- 物理层
- 数据链路层
- 网络层
- 传输层
- 会话层
- 表示层
- 应用层
31. 路由器工作在 OSI 哪一层?
网络层。
32. TCP/UDP 协议对应 OSI 哪一层?
传输层。
33. 添加一条去往 192.168.0.0/16 网段的路由,网关 10.10.10.1
route add -net 192.168.0.0 netmask 255.255.0.0 gw 10.10.10.1
原文写作
... default gw 10.10.10.1,对网络路由应使用gw而不是default gw,此处作技术修正。
34. 使用什么命令查看网络是否连通?
原文答案:netstat。
补充:
netstat主要用于查看网络连接/端口;测试连通性常用ping、traceroute、telnet、nc等。
35. 查看路由跟踪的命令?
traceroute www.baidu.com
36. 交换机工作在 OSI 七层中的哪一层?
数据链路层。
37. 建立动态路由需要用到的文件
原文答案:/etc/resolv.conf。
38. 远程网络连接不上时如何排查?
使用 traceroute 跟踪路由,了解数据包在网络中的哪一跳出现问题。
三、进程与存储
39. 什么是进程和线程?
一个应用至少有一个进程,一个进程至少有一个线程。
- 线程是 CPU 独立运行和独立调度的基本单位;
- 进程是资源分配的基本单位。
40. RAID 0、RAID 1、RAID 5 的作用与特点
| 级别 | 磁盘要求 | 特点 | 原理 |
|---|---|---|---|
| RAID 0(类似 glusterFS 条带卷) | 2 块以上 | 无数据冗余、无校验,读写速度快;任一盘损坏即丢失全部数据 | 将多块盘合并为一块,数据连续分割到各盘,带宽加倍 |
| RAID 1(类似 glusterFS 复制卷) | 2 块 | 通过镜像实现 100% 冗余;成本高,读快写慢 | 两块盘互为镜像,容量等于一块盘,适合高安全、快速恢复场景 |
| RAID 5(RAID 0/1 折中) | 至少 3 块 | 读写接近 RAID 0,成本低,允许坏 1 块盘 | 数据和奇偶校验分散存储在各盘,坏盘后利用其余数据和校验重建 |
四、Web 服务与中间件
41. Nginx 是怎么代理的?修改配置后如何生效?怎么做负载均衡冗余?
- 代理:通过配置文件中的
proxy_pass模块实现; - 重新加载配置:
nginx -s reload; - 负载均衡冗余:通过
upstream+proxy_pass,在upstream中加入server IP backup;备机,再通过location引用。
42. Nginx、Tomcat 调优
Nginx 调优要点:
worker_processes:工作进程数,一般设为 CPU 核数或auto;worker_connections:单进程最大连接数,默认 512,可用ab压测,建议 1024;- 打开 buffer 缓存;
timeout合理设置超时时间;- 打开
gzip,减少网络传输; - Static file caching:对静态文件开启浏览器缓存;
- 关闭
access_log,减少磁盘 I/O; - 保持连接:
keepalive_requests 100;(超过即关闭)、keepalive_timeout 75s;(超时关闭)。
43. Tomcat 的主要作用是什么?具体工作、配置及应用
Tomcat 是一个 Web 服务器/中间件,主要用于运行 Java 开发的项目。安装需要 JDK 环境,配置 Tomcat 目录下的启动/停止脚本,并将 JDK 加入环境变量;主配置文件为 tomcat/conf/server.xml。
44. Tomcat 怎么连接数据库?
通过 MySQL 官方提供的 JDBC 连接器进行 JDBC 开发。
45. LNMP 主要做什么?
LNMP 是一个生产环境:Linux + Nginx + MySQL + PHP/Python/Perl,主要用于搭建动态网站。
46. ELK 是怎么收集数据日志的?
通过搭建 Elasticsearch 集群收集、分析、存储数据;Logstash 收集并过滤日志;Kibana 提供 Web 展示界面。
47. 你最熟悉什么中间件?
原文答案:Nginx、Tomcat。
48. Zabbix 的安装过程
- 准备 163 源、Zabbix 官方源、本地 YUM 源;
- 安装:
yum install -y zabbix-server-mysql zabbix-web-mysql mariadb-server - 导入表结构:
zcat /usr/share/doc/zabbix-server-mysql-3.2.7/create.sql.gz | mysql -u zabbix -p123 zabbix - 配置
/etc/httpd/conf.d/zabbix.conf,修改时区为Asia/Shanghai; - 浏览器访问
http://IP/zabbix进入控制台; - 被监控端安装
zabbix-agent,在控制台添加主机,即完成。
49. 怎么防止单点故障、实现负载均衡?
- 高可用:使用 Keepalived,master 与 backup 通过心跳线连接,master 宕机后 backup 接管,VIP 漂移到 backup,保证集群高可用;
- 负载均衡:可通过 Nginx、LVS、HAProxy 实现。Nginx/HAProxy 支持七层和四层调度,LVS 支持四层调度。
五、MySQL 数据库
50. server-id 为什么不能从 0 开始?作用是什么?
- server-id 本身可以为 0,但其主键不能为 0,为 0 时不能自增;
- 作用:标记 binlog 的源站点(source),用于主从复制区分不同实例。
51. MySQL 主从复制的原理及带来的效益
slave 端的 IO 线程连接 master 并发出请求,master 将 binlog 文件名和位置信息返回给 slave;slave 的 IO 线程把 master 的 binlog 内容依次写入本地的 relay log,并把文件名和位置记录到 master.info;slave 的 SQL 线程检测到 relay log 更新后,解析并执行其中的操作,使 slave 执行与 master 相同的操作,从而达到数据同步。
效益:读写分离、数据备份、高可用。
52. MySQL 如何备份上亿数据?
mysqldump 和 rsync 都不可行(数据量太大)。可使用 MySQL 自带的:
SELECT ... INTO OUTFILE '...'
按条件导出。
53. MySQL 怎么优化、怎么监控?
优化:
- 连接数与超时:
max_connections = 1000、wait_timeout = 10; - 开启查询缓存(query cache);
- 主从复制;
- 配置慢查询日志;
- 添加索引、创建视图。
监控:可使用开源监控软件 Zabbix 监控 MySQL。
54. 数据库挂了怎么办?
一般数据库都有灾备方案:主服务器挂了,还有从服务器;主库故障应立即修复,重新恢复服务(可切换至从库顶上来)。
55. MySQL 的备份和恢复
# 全备
mysqldump -u root -p123 -A > /back/backup.sql
# 指定多个数据库
mysqldump -u root -p123 -B test test1 test2 > /back/multi.sql
# 导出指定表(需配合 -B)
mysqldump -u root -p123 -B m2 --tables t1 t2 > /back/tables.sql
以 test 库为例(用户名 root,密码 test):
# 备份(-F 刷新 binlog)
mysqldump -uroot -ptest -B test -F > /backup/test.sql
# 恢复
mysql -uroot -ptest < /backup/test.sql
56. SQL 复制技术类型
同步复制、异步复制、半同步复制。
六、Docker
57. 简述 Docker 的优势
- 持续部署与测试;
- 版本控制;
- 隔离性;
- 安全性;
- 可移植性;
- 保持环境一致性。
七、运维岗位与经验
58. 运维是什么?
运维负责保证线上服务的正常运行与维护。
59. 在公司自己搭建交换机吗?怎么搭建?
原文未给出答案。
60. 你最得意的项目是什么?用的什么服务器?是自己搭的吗?
原文未给出答案。
61. 在工作中发生过什么故障?
原文举例:
- 编译时遇到编译错误,经排查是未安装
gcc、gcc-c++,通过yum install解决; - 常见网络故障:网线接口松动;
- 项目部署中软件版本过低无法运行,升级后解决;多版本相同软件冲突,卸载多余版本。
62. 怎么发布新版本?
原文未给出答案。
63. ELK 日志分析经验?
原文未给出答案(题目为空答)。
64. 原来工作中解决过什么故障?请详细讲讲。
原文未给出具体答案(与第 61 题相关,可结合回答)。
65. 你在以前公司做什么?做过哪些项目?遇到过什么问题,怎么处理的?
原文未给出答案。
八、填空题
- Linux 内核引导时,从文件
/etc/fstab中读取要加载的文件系统。 - Linux 文件系统中每个文件用 inode 号 来标识。
- 前台启动的进程使用 Ctrl+C 终止。
- vi 编辑器具有三种工作模式:编辑模式、普通模式、命令行模式。
- 进行字符串查找使用
find(格式:find 指定范围 指定条件 指定文件)。 - MySQL 使用什么命令备份:
mysqldump;备份与恢复示例:mysqldump -uroot -ptest -B test -F > /backup/test.sql mysql -uroot -ptest < /backup/test.sql - 交换机工作在 OSI 七层中的 数据链路层。
- 在 TCP/IP 协议集中,传输层的 UDP 协议是一种面向无连接的协议,不保证数据包可靠传输,没有差错检测功能。
原文此处留空,根据"面向无连接、无差错检测"的描述应填 UDP。
- SQL 复制技术类型:同步复制、异步复制、半同步复制。
- 建立动态路由需要用到的文件:
/etc/resolv.conf(原文答案)。 - 当挂载远程网络存储连不上时,使用
traceroute跟踪路由以定位网络中出现问题的位置。
此处评论已关闭