第3章 核心技能清单:Linux基础、Shell编程、Python脚本、阿里云产品

本章定位:四项硬技能构成阿里云自动化工程师的技术基石。面试中80%的实操题均围绕这四大领域展开,本章拆解每项技能的考察重心与回答策略,帮你建立「场景→操作→成果」的应答主线。
自动化工程师技能面试回答框架 1 识别考察点 判断考操作/原理/排障 2 关联实战场景 对接真实业务案例 3 展示操作细节 关键命令与脚本逻辑 4 结合阿里云 融合云产品使用经验 5 总结价值成果 突出效率与自动化 完整回答 = 场景还原 + 操作细节 + 成果量化 · 始终围绕「业务→技术→价值」主线
技能领域 常见面试题型 核心工具 / 命令 加分项
Linux 基础 系统排障 · 权限管理 · 网络配置 · 性能分析 top / vmstat / lsof / netstat / strace 内核参数调优 · 容器化经验
Shell 编程 脚本编写 · 定时任务 · 日志处理 · 进程管理 awk / sed / crontab / flock / systemctl 函数化设计 · 错误处理 · 幂等性
Python 脚本 SDK 调用 · 自动化巡检 · 数据处理 · API 封装 boto3 / aliyun-python-sdk / requests / json 异常处理 · 并发设计 · 代码规范
阿里云产品 产品选型 · 云监控 · 自动化运维 · 成本优化 ECS / OSS / SLB / CloudMonitor / RAM 云架构设计 · 开箱即用自动化方案

🎯 Linux基础:CPU负载过高,如何排查?

📌 面试官考察点
  • 是否掌握系统性能排查方法论
  • 能否熟练使用 top、vmstat、strace 等工具
  • 能否区分 CPU 负载与 CPU 使用率
  • 是否有真实的线上排障经验
📋 回答框架
  1. 确认现象 — 用 top / uptime 查看负载值
  2. 定位进程 — 按 CPU 排序,找出消耗最高的进程
  3. 深入分析 — 使用 strace / perf 追踪系统调用
  4. 关联业务 — 判断是代码问题还是配置问题
  5. 给出方案 — 优化代码 / 扩容 / 调整内核参数
💡 简短示例回答

先用 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 脚本基本功(条件判断、循环、函数)
  • 进程管理与信号处理
  • 日志记录与异常处理
  • 脚本的健壮性与幂等性
📋 回答框架
  1. 脚本结构 — 函数化设计:check、restart、log
  2. 进程检测 — 用 pgrep / pidof 检查 PID
  3. 重启机制 — systemctl restart 或直接启动
  4. 日志记录 — 时间戳 + 状态信息写入文件
  5. 部署方式 — 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 管理)
📋 回答框架
  1. 初始化 — 配置 RAM 角色 / 环境变量获取凭证
  2. SDK 调用 — 使用 aliyun-python-sdk 遍历实例
  3. 数据采集 — 获取状态、磁盘使用率、CPU 指标
  4. 阈值判断 — 磁盘 >80% / CPU >70% 触发告警
  5. 输出报告 — 推送钉钉 / 写入日志 / 生成 JSON
💡 简短示例回答

使用 aliyun-python-sdk-core 初始化客户端,调用 DescribeInstances 获取实例列表;对每个实例用 DescribeDisks 查磁盘使用率,DescribeMetricList 查 CPU 指标。阈值磁盘 >80%、CPU >70% 触发钉钉 Webhook 通知,输出 JSON 巡检报告,用 try-except