Python 运维实战

学习 Python 运维实战。本模块涵盖 Python 与 Bash 基础对比、执行 Shell 命令、使用 Shutil 进行文件操作、解析 JSON 数据、使用标准库进行网络请求。您将通过实践操作和真实世界挑战掌握这些必要的 Linux 技能。

DevOps 工程师LinuxDevOps

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

大纲

no data

简介

当运维任务超出简短 Shell 管道的能力,并需要结构化数据、可复用逻辑或可靠错误处理时,Python 是自然的下一步。本实践课程只使用 Python 3 及其标准库,教你构建小型 Linux 自动化工具。

你将执行系统命令、管理目录树、转换 JSON 配置,并在不安装第三方包的情况下完成带超时的 HTTP 检查。最终挑战会把这些技能组合成本地健康检查脚本,将磁盘使用情况和 Web 服务状态记录为机器可读的 JSON 报告。

你将学到什么

  • 使用 Python 3 REPL,并编写检查 Linux 平台信息的脚本
  • 使用 subprocess.run 执行命令、捕获并解码输出,以及处理非零退出状态
  • 创建目录和文件,使用 shutil 移动或复制项目,并通过 os.walk 遍历目录树
  • 按扩展名筛选文件,并在更改配置数据前创建备份
  • 将 JSON 载入 Python 字典、修改值,并使用 json.dump 写出易读 JSON
  • 使用 urllib.request 检查 HTTP 状态、设置超时,并区分 HTTP 错误与连接失败
  • 构建具备异常处理的健康检查脚本,将磁盘和本机服务结果写入 /tmp/health_report.json

本课程适合谁

本课程适合希望在工具箱中加入可维护 Python 自动化的 DevOps 学习者、系统管理员和 Bash 用户。

前置要求: 熟悉 Linux 终端和文件系统基础;无需 Python 编程经验。

学习环境: 可通过浏览器访问的 Linux 终端,配有 Python 3、Bash、nano、标准 Linux 命令、用于连通性检查的本地 HTTP 服务和 Python 标准库;无需安装软件包或使用云账户。

常见问题

课程需要 Requests 等第三方 Python 包吗?

不需要。所有练习都使用 Python 标准库,包括 subprocess、os、shutil、json 和 urllib;网络实验特意使用 urllib.request 而不是 Requests。

这是一门通用 Python 编程课程吗?

不是。课程只介绍完成特定运维任务所需的 Python 语法与控制流程,不涵盖类、打包、Web 框架、测试框架或更广泛的应用开发。

文件操作实验会修改重要系统文件吗?

不会。你会在项目目录中创建可丢弃的 test_env 目录树,并对其中的示例文件练习重命名、移动、复制、遍历和筛选。

最终健康检查实际监控什么?

脚本会运行 df -h,检查 http://localhost 是否返回 HTTP 200,把磁盘输出和 online 或 offline 服务状态放入字典,再将有效且带缩进的 JSON 写入 /tmp/health_report.json。它是本地脚本,并非部署好的监控平台。

教师

labby
Labby
Labby is the LabEx teacher.