讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux 系统运维自动化案例

夜雪君_3771

夜雪君_3771

发布时间:2026-02-21 00:09:10

|

1019人浏览过

|

来源于php中文网

原创

磁盘告警需先验证mail链路,再用df+awk提取超阈值分区;日志清理须限定目录、严格后缀匹配并预演;rsync推送后须校验服务状态并自动回滚;健康检查应选curl测HTTP响应码,配合超时与可观测性设计。

linux 系统运维自动化案例

磁盘使用率超阈值怎么自动发邮件?

能发邮件的前提不是写对 mail -s,而是本地邮件代理真能投出去。很多脚本跑通了 df 和 awk,却卡在“没收到告警”上——八成是 mailx 或 msmtp 没配好,或 SELinux 拦了发送权限。

  • 先验证基础链路:echo "test" | mail -s "test" $(whoami),看能不能收到本地信;失败就别急着加定时任务
  • 用 df -h | awk '$5+0 > 85 {print $1, $5}' 是可行的,但注意 $5 含百分号,+0 是为强制数值比较,避免字符串比对出错
  • 别直接 mail -s "告警" admin@example.com,加 -r 指定发信人,否则某些邮件网关会拒收匿名信
  • 日志必须记全上下文:echo "$(date '+%F %T') $(hostname) $(df -h | grep '/$' | awk '{print $5,$4}')" >> /var/log/disk-alert.log,只记百分比容易误判(比如 /boot 满了但根分区还剩 40G)

Python 脚本删日志,为什么总删错目录?

用 os.walk() 或 pathlib.Path.rglob() 扫描日志时,最常踩的坑是路径没做白名单过滤,结果把 /var/log/journal 或 /var/log/audit 这类二进制日志也当普通 .log 文件给清了。

  • 明确限定范围:只处理 /var/log/nginx/、/var/log/apache2/ 这类应用日志目录,避开系统级日志区
  • 后缀匹配要严格:if file.suffix == '.log' 比 if '.log' in file.name 安全,防止误删 app.log.bak 或 logrotate.conf
  • 删除前必须预演:print(f"[DRY RUN] would remove: {file}"),上线前加个 --dry-run 参数开关
  • 用 file.stat().st_mtime 算时间,别依赖 mtime 的字符串解析——不同 locale 下 ls -l 时间格式可能不一致

rsync 推配置后怎么确认没推坏?

自动同步最危险的不是传不上去,而是传上去了但服务起不来。比如 Nginx 配置少了个分号,rsync 成功返回,systemctl restart nginx 却静默失败。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 推送后必须远程执行校验命令:ssh user@host 'nginx -t && systemctl is-active --quiet nginx',两个条件都满足才算通过
  • 失败时不能只 echo 报错,得立刻回滚:ssh user@host 'cp /etc/nginx/nginx.conf.bak.$(date -d "yesterday" +\%s) /etc/nginx/nginx.conf'
  • rsync 加 --delete 很危险,除非你确定目标端没有手工添加的 conf 片段;更稳妥的是加 --exclude='*.bak' 和 --exclude='*.swp'
  • 备份文件名里带时间戳不够,得加主机名:nginx.conf.bak.$(hostname).$(date +%s),否则多台机器并发执行会覆盖彼此备份

健康检查脚本里,nc 和 curl 怎么选?

nc -z host port 只管端口通不通,curl 才能测真实响应逻辑。但用错参数,两者都会假阳性——比如服务进程活着但返回 502,nc 仍显示 OK。

  • 端口探测用 nc -z -w 2 localhost 80,-w 2 防止卡死;超时设太长会让巡检变慢,设太短又容易漏判
  • HTTP 健康检查必须带状态码判断:curl -f -s -o /dev/null -w "%{http_code}" http://localhost/health | grep -q "^200$",-f 让非 2xx 返回非零退出码
  • 别用 curl -I 查 header 就完事——有些服务对 HEAD 不实现,但 GET 正常;/health 接口应支持 GET
  • 响应时间阈值别硬编码 2 秒,改成变量:TIMEOUT_SEC=${HEALTH_TIMEOUT:-2},方便不同服务差异化配置

自动化脚本真正难的不是语法,是每一步都得想清楚“它失败时,我怎么知道?知道了又怎么恢复?”——所以所有关键操作,必须有可观测出口(日志)、可逆动作(备份)、可中断机制(超时)。否则越自动,越难救。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

403

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3787

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

6545

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

581

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1496

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3978

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

122

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

517

2026.01.13

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

60

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn