自动化运维工具包开发

在这个实践项目中,您将作为平台效率团队的一员,开发一套自动化工具。您将练习专业的 Git 工作流、用于系统监控的 Bash 脚本、使用 Awk 和 Sed 进行高级日志处理,以及使用 Cron 进行任务调度。

DevOps 工程师DevOpsLinux

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

简介

有用的运维自动化不只是运行一次的脚本:它应当受版本控制、可执行、输出受控,并按可预测的计划运行。本挑战型项目要求你把这些要素组合成一个小型本地运维工具包。

你将建立 Git 工作流、编写 Bash 健康监控脚本、使用 sed 和 awk 转换预置日志,并安装两条 Cron 任务。每个阶段都会验证具体文件、权限、仓库状态、报告内容或 Crontab 语法,而不会逐条给出命令答案。

你将学到什么

  • 初始化本地 Git 仓库、定义忽略规则、在 develop 分支工作并提交基线
  • 编写可执行 Bash 脚本,带时间戳报告根文件系统使用率和 Nginx 状态
  • 使用 df 提取磁盘使用率,并通过 systemctl、service 或 pgrep 检查服务
  • 使用 sed 和 awk 删除 DEBUG 记录、脱敏 IPv4 地址并重组日志字段
  • 生成可执行处理脚本及符合指定时间戳、脱敏标记和消息格式的干净报告
  • 每五分钟调度监控、每天 02:00 调度日志处理,并把监控错误重定向到文件

本课程适合谁

本项目适合准备在没有逐条命令指导的情况下综合运用 Git、Bash、文本处理和 Cron 的 Linux 与 DevOps 学习者。

前置要求: 熟悉 Shell 脚本、可执行权限、Git 基础、管道、sed、awk、进程或服务检查以及 Crontab 语法;这是考核型项目。

学习环境: 可通过浏览器访问的 Linux 主机,配有 Bash、Git、Cron、Nginx 相关服务状态、GNU/Linux 文本工具以及预置工具包和日志文件;无需远程 Git 托管或云账户。

常见问题

Git 阶段会把代码推送到 GitHub 或其他远程仓库吗?

不会。它只在 /home/labex/ops-toolkit 创建本地仓库,加入 *.tmp 和 logs/ 忽略规则,切换到 develop,并记录至少一个基线提交。

监控脚本是一套完整告警系统吗?

不是。monitor.sh 只带时间戳输出根磁盘使用率和 Nginx 是否活跃,不定义使用率阈值、不发送通知、不保存指标,也不提供仪表盘。

日志处理器预期什么格式?

它处理预置的空格分隔记录,其中包含日期、时间、级别、IPv4 地址和消息。输出会删除 DEBUG,用 [REDACTED] 替换 IP,并保留 YYYY-MM-DD HH:MM:SS [REDACTED] Message... 格式。

调度挑战会等待任务实际运行吗?

不会。它验证恰好两条 Crontab:monitor.sh 每五分钟运行且将 stderr 写入 monitor.err,process_logs.sh 每天 02:00 运行。

教师

labby
Labby
Labby is the LabEx teacher.