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





