第3章 核心技能清单:Linux基础、Shell编程、Python脚本、阿里云产品
本章定位:四项硬技能构成阿里云自动化工程师的技术基石。面试中80%的实操题均围绕这四大领域展开,本章拆解每项技能的考察重心与回答策略,帮你建立「场景→操作→成果」的应答主线。
🎯 Linux基础:CPU负载过高,如何排查?
📌 面试官考察点
- 是否掌握系统性能排查方法论
- 能否熟练使用
top、vmstat、strace等工具 - 能否区分 CPU 负载与 CPU 使用率
- 是否有真实的线上排障经验
📋 回答框架
- 确认现象 — 用
top/uptime查看负载值 - 定位进程 — 按 CPU 排序,找出消耗最高的进程
- 深入分析 — 使用
strace/perf追踪系统调用 - 关联业务 — 判断是代码问题还是配置问题
- 给出方案 — 优化代码 / 扩容 / 调整内核参数
💡 简短示例回答
先用 top 查看负载均值,按 P 键按 CPU 排序定位高消耗进程;再用 ps -mp 查看线程级消耗,结合 strace 追踪系统调用;若进程正常则用 vmstat 检查上下文切换。最后根据业务特点给出优化建议,如代码层面减少锁竞争或扩容 ECS 实例。
🔍 可能追问
load average的三个值分别代表什么?- CPU 使用率高但负载低可能是什么原因?
- 如何排查 I/O 等待导致的 CPU 负载高?
⚠️ 避坑提醒:避免只凭
top 一个命令就下结论,需结合 vmstat、mpstat 多维度判断;不要混淆 CPU 负载和 CPU 使用率,负载高不一定是 CPU 忙,也可能是 I/O 等待。
🎯 Shell编程:编写 Nginx 进程监控与自动重启脚本
📌 面试官考察点
- Shell 脚本基本功(条件判断、循环、函数)
- 进程管理与信号处理
- 日志记录与异常处理
- 脚本的健壮性与幂等性
📋 回答框架
- 脚本结构 — 函数化设计:
check、restart、log - 进程检测 — 用
pgrep/pidof检查 PID - 重启机制 —
systemctl restart或直接启动 - 日志记录 — 时间戳 + 状态信息写入文件
- 部署方式 —
crontab每分钟执行,flock防并发
💡 简短示例回答
设计 check、restart、log 三个函数:check 用 pgrep 获取 PID,为空则调用 restart 执行 systemctl restart 并记录日志;log 写入 /var/log/nginx_monitor.log 含时间戳。通过 crontab 每分钟执行一次,用 flock 防止重复运行。
🔍 可能追问
- 如何防止脚本并发执行?
- 如果重启失败怎么办?(重试 + 告警)
- 如何监控 Nginx 子进程(worker)?
⚠️ 避坑提醒:不要直接用
kill -9 强制杀掉进程;必须考虑脚本并发问题,使用 flock 或 PID 文件做互斥;重启失败时要有告警机制,不能无限重试。
🎯 Python + 阿里云产品:实现 ECS 实例自动巡检
📌 面试官考察点
- Python 编程能力(SDK 调用、异常处理、代码规范)
- 阿里云产品熟悉度(ECS、CloudMonitor)
- 自动化运维思维与可扩展性
- 安全性意识(AccessKey 管理)
📋 回答框架
- 初始化 — 配置 RAM 角色 / 环境变量获取凭证
- SDK 调用 — 使用
aliyun-python-sdk遍历实例 - 数据采集 — 获取状态、磁盘使用率、CPU 指标
- 阈值判断 — 磁盘 >80% / CPU >70% 触发告警
- 输出报告 — 推送钉钉 / 写入日志 / 生成 JSON
💡 简短示例回答
使用 aliyun-python-sdk-core 初始化客户端,调用 DescribeInstances 获取实例列表;对每个实例用 DescribeDisks 查磁盘使用率,DescribeMetricList 查 CPU 指标。阈值磁盘 >80%、CPU >70% 触发钉钉 Webhook 通知,输出 JSON 巡检报告,用 try-except