实用指南:ICT运维面试问那些问题
2026-01-25 16:17 tlnshuju 阅读(0) 评论(0) 收藏 举报
ICT运维的面试题范围非常广,今天整理一份分类的面试题清单,包括基础概念题、场景题和高频命令题,并附上考察点和答题思路。
一、Linux 基础与核心概念
这类问题考察候选人的基本功是否扎实。
1. 请描述一下 Linux 的启动过程。
• 考察点:对系统初始化流程的理解。
• 参考答案:
1. 加电自检:BIOS/UEFI 进行硬件检查。
2. 引导加载程序:GRUB2 等被加载,显示启动菜单。
3. 加载内核:引导程序加载内核和
initramfs到内存,并解压初始化。4. 初始化进程:内核启动第一个用户空间进程
systemd(或旧的init)。5. 执行目标:
systemd根据默认 target(如multi-user.target或graphical.target)启动相应的服务和单元。6. 登录界面:启动 getty 或显示管理器,等待用户登录。
2. 什么是负载均衡?Linux 下如何查看平均负载?
• 考察点:对系统性能基础指标的理解。
• 参考答案:
• 负载均衡:指系统在一段时间内,处于可运行状态和不可中断状态的进程平均数量。它反映了系统的忙碌程度。
• 查看命令:
uptime或top命令输出中的load average: 1.05, 5.10, 15.00。• 解读:三个数字分别代表 1分钟、5分钟、15分钟的平均负载。通常,如果平均负载持续高于 CPU 核心数,就意味着系统可能过载。
3. 硬链接和软链接的区别是什么?
• 考察点:对文件系统底层原理的理解。
• 参考答案:
• 硬链接:
• 是原文件的另一个入口,与原文件共享相同的 inode。
• 不能跨文件系统。
• 删除原文件,硬链接依然有效(只是链接数减一)。
•
ln source hard_link
• 软链接:
• 是一个独立的文件,内容指向原文件的路径,拥有自己的 inode。
• 可以跨文件系统。
• 删除原文件,软链接将失效(“断链”)。
•
ln -s source soft_link
4. 简述
vi编辑器的三种模式及其切换。• 考察点:对最基础文本编辑工具的熟练度。
• 参考答案:
• 命令模式:刚进入 vi 时的模式,可以执行复制、粘贴、删除、查找等命令。
• 插入模式:按
i,a,o等键进入,可以进行文本编辑。• 底线命令模式:在命令模式下按
:进入,可以保存、退出、查找替换等。• 切换:
ESC键可以从插入模式或底线命令模式退回命令模式。
二、网络管理与故障排查
这是运维的核心技能,问题会非常深入。
1. 当用户报告“网站打不开”,你的排查思路是什么?
• 考察点:系统化的故障排查能力和逻辑思维。
• 参考答案:
1. 明确问题:是个别用户还是所有用户?是某个页面还是所有页面?
2. 本地排查:自己尝试访问,使用
curl -I查看 HTTP 状态码。3. DNS 解析:
nslookup或dig查看域名是否能正确解析到 IP。4. 网络连通性:
ping测试服务器是否可达;traceroute跟踪路由路径。5. 端口与服务:
telnet <IP> <port>或nc -zv <IP> <port>检查服务端口是否开放。6. 服务器状态:登录服务器,
systemctl status nginx/php-fpm检查服务状态;top/htop查看资源使用;df -h查看磁盘空间;tail -f /var/log/nginx/error.log查看错误日志。7. 防火墙与安全组:检查 iptables/firewalld 以及云服务商的安全组规则。
2.
netstat** 和ss命令有什么区别?你常用哪个?**• 考察点:对网络工具的了解和使用习惯。
• 参考答案:
•
ss是netstat的现代替代品,它直接从内核空间获取信息,速度更快。•
netstat通过遍历/proc文件系统来收集信息,在连接数非常多时速度较慢。• **我常用 **
ss,因为它更高效。例如查看所有 TCP 连接:ss -tlnp。
3. 解释一下 TCP 三次握手和四次挥手的过程。为什么是三次和四次?
• 考察点:对 TCP 协议核心机制的理解。
• 参考答案:
• 三次握手:
1. 客户端发送
SYN。2. 服务端回复
SYN-ACK。3. 客户端再回复
ACK。4. 为什么是三次:三次握手已经足够确认双方的收发能力都正常,防止了已失效的连接请求报文突然又传送到服务器而产生错误。
• 四次挥手:
• 为什么是四次:因为 TCP 是全双工的,关闭连接需要双方都确认关闭。第二步和第三步不能合并,是因为被动方可能还有数据需要发送。
1. 主动方发送
FIN。2. 被动方回复
ACK。3. 被动方准备好后,也发送
FIN。4. 主动方回复
ACK。
三、Shell 脚本与自动化
考察实际动手能力和编程思维。
1. 如何统计一个日志文件中 IP 地址的访问次数并排序?
• 考察点:文本处理能力,对
awk,sort,uniq等命令的熟练度。• 参考答案:
# 假设日志格式为:... [ip] ... 或 IP 在第一列
awk '{print $1}' access.log | sort | uniq -c | sort -nr
* `awk` 提取 IP 列。
* `sort` 排序,为 `uniq -c` 做准备。
* `uniq -c` 统计并计数。
* `sort -nr` 按计数倒序排列。
2. 写一个脚本,定时检查某个进程是否存在,如果不存在则自动重启。
• 考察点:基本的脚本编写和流程控制能力。
• 参考答案:
#!/bin/bash
PROCESS_NAME="nginx"
if ! pgrep -x "$PROCESS_NAME" > /dev/null
then
echo "$(date): $PROCESS_NAME is down, restarting..." >> /var/log/process_monitor.log
systemctl start $PROCESS_NAME
fi
* 然后使用 `crontab -e` 添加定时任务:`* * * * * /path/to/script.sh`。
四、服务管理与安全
1. 简述
systemctl和service命令的区别与联系。• 考察点:对 Linux 服务管理演进的理解。
• 参考答案:
•
service是 SysV init 系统的脚本管理命令,它是一个兼容性脚本。•
systemctl是 systemd 系统的原生命令,功能更强大,可以管理服务、挂载点、套接字等所有“单元”。• 在 systemd 系统中,
service xxx start实际上会被转发给systemctl start xxx执行。
2. 如何排查服务器遭受 SSH 暴力破解?如何处理?
• 考察点:安全意识和应对能力。
• 参考答案:
• 排查:
grep "Failed password" /var/log/secure或journalctl -u ssh,查看大量失败登录记录。• 处理:
1. 立即封禁 IP:使用
fail2ban工具自动封禁,或手动iptables -A INPUT -s <攻击IP> -j DROP。2. 强化 SSH:
• 修改默认端口。
• 禁止 root 用户直接登录 (
PermitRootLogin no)。• 使用密钥认证,禁用密码认证 (
PasswordAuthentication no)。• 使用强密码策略。
五、场景与行为面试题
这类问题没有标准答案,考察综合能力和软技能。
1. 假设一台线上服务器 CPU 使用率突然达到 100%,你的处理流程是什么?
• 考察点:应急处理能力、压力下的逻辑思维。
• 答题思路:
1. 快速定位:
top-> 按1看每个核心,按P按 CPU 排序,找到占用最高的进程。2. 深入分析:
• 如果是 Java 应用,用
jstack抓取线程栈,分析是否死锁或死循环。• 用
strace -p <PID>跟踪进程的系统调用。• 用
perf工具进行性能剖析。
3. 临时解决:如果是非核心业务进程,可以谨慎
kill。4. 长远解决:根据分析结果修复代码或调整系统配置。
2. 你如何保证你所维护的服务的高可用性?
• 考察点:架构设计思想和运维体系规划能力。
• 答题思路:
• 消除单点:应用层负载均衡,数据库主从/集群,多机房部署。
• 容错与自愈:服务健康检查、自动故障转移、弹性伸缩。
• 监控与告警:建立完善的监控体系,出现问题第一时间发现并通知。
• 备份与恢复:定期备份数据并演练恢复流程。
• 变更管理:灰度发布、蓝绿部署,减少变更风险。
3. 你平时是如何学习新技术,跟上行业发展的?
• 考察点:学习能力和职业热情。
• 答题思路:结合自身情况,可以提到:
• 关注技术博客/社区(如 InfoQ, GitHub, Stack Overflow)。
• 系统学习在线课程。
• 在个人项目或实验环境中动手实践。
• 参加技术沙龙和会议。
• 阅读官方文档和经典书籍。
面试准备建议
• 理解原理:不要死记硬背命令,要理解其背后的工作原理。
• 动手实践:所有命令和场景最好都在自己的实验环境里操作过。
• 准备项目:准备好1-2个你解决过的复杂运维案例,能清晰地描述背景、你的角色、采取的行动和最终的结果。
• 保持诚实:遇到不会的问题,坦诚承认,并说明你的解决思路,这比瞎猜要好。
浙公网安备 33010602011771号