本文目录导读:

自动化运维是 Python 的强项,适合用它来编写脚本、工具,替代繁琐的人工操作。
以下按常用场景分类,推荐几个适合实践的 Python 自动化运维案例,难度从入门到进阶:
文件和系统管理(最基础,适合练手)
- 日志清理与归档
- 需求:某应用每天产生大量日志,需要删除7天前的
.log文件,或将30天前的文件压缩归档。 - 关键库:
os,shutil,glob,time/datetime。 - 核心逻辑:遍历目录、获取文件修改时间、计算时间差、删除/压缩。
- 需求:某应用每天产生大量日志,需要删除7天前的
- 配置文件批量修改
- 需求:公司有100台服务器的Nginx配置文件
worker_processes需要从auto改为4。 - 关键库:
os,re(正则), 或configparser(处理ini文件)。 - 核心逻辑:读取文件、正则匹配替换、写回文件,可结合SSH(
paramiko)实现远程批量修改。
- 需求:公司有100台服务器的Nginx配置文件
- 磁盘/内存监控并发送告警
- 需求:当磁盘使用率超过85%时,发送邮件或钉钉/企业微信通知。
- 关键库:
psutil,smtplib,requests(发钉钉消息)。 - 核心逻辑:调用
psutil.disk_usage获取数据,判断阈值,触发报警。
网络与服务管理(实用性强)
- 批量服务器存活检测
- 需求:每晚自动检查机房200台服务器的
22/80端口是否可达。 - 关键库:
socket,concurrent.futures(多线程)。 - 核心逻辑:
socket.connect_ex检测端口,利用并发加快速度,输出在线/离线列表。
- 需求:每晚自动检查机房200台服务器的
- 自动化部署脚本(代码上线)
- 需求:从Git拉取最新代码,运行测试,打包,通过SCP分发到多台Web服务器,重启服务。
- 关键库:
os,subprocess(执行系统命令),paramiko(远程SSH/SCP),fabric(更高级封装)。 - 核心逻辑:通过
paramiko连接远程机器,执行git pull、systemctl restart nginx等命令。
- DNS缓存刷新/域名解析检查
- 需求:进行机房迁移后,需要检查数十个域名的解析是否已指向新IP。
- 关键库:
socket(gethostbyname),dnspython。 - 核心逻辑:批量解析域名,与预期IP列表比对,输出不一致的项。
数据库与数据备份(核心运维)
- 自动备份MySQL/PostgreSQL数据库
- 需求:自动列出所有数据库,用
mysqldump导出并压缩,保留最近30天的备份文件。 - 关键库:
subprocess,os,datetime。 - 核心逻辑:使用
subprocess.run执行mysqldump -u root db > backup.sql命令。
- 需求:自动列出所有数据库,用
- 数据库连接池与慢查询监控
- 需求:从MySQL的
slow_query_log中提取执行时间超过2秒的SQL语句,并按次数排序输出。 - 关键库:
pymysql,re。 - 核心逻辑:连接MySQL,执行
SELECT * FROM mysql.slow_log或解析慢查询日志文件。
- 需求:从MySQL的
云资源与API交互(进阶)
- 管理云服务器(AWS/Aliyun/腾讯云)
- 需求:根据CPU使用率,自动创建/释放云服务器,业务高峰时自动增加一台服务器并挂载到SLB。
- 关键库:
boto3(AWS),aliyun-python-sdk-ecs(阿里云),tencentcloud-sdk-python(腾讯云)。 - 核心逻辑:调用云厂商API,查询实例列表,创建/停止/释放实例。
- 域名SSL证书自动续签
- 需求:通过DNS验证方式(调用DNS厂商API添加TXT记录),自动续签Let‘s Encrypt证书。
- 关键库:
acme-tiny,requests(调用DNS API,如阿里云DNS API)。 - 核心逻辑:调用DNS API创建验证记录 -> 请求证书 -> 下载证书 -> 重启Nginx。
实际运维工具编写(综合项目)
- 命令行版主机批量管理工具
- 功能:
python manage.py --hosts 192.168.1.x -c "uptime" - 关键库:
argparse(命令行参数),paramiko,threading。 - 核心逻辑:接收用户输入的主机和命令,并发SSH执行并返回结果。
- 功能:
- 资产扫描与CMDB更新
- 需求:自动登录所有服务器,收集主机名、IP、CPU、内存、磁盘、操作系统版本,写入数据库或Excel。
- 关键库:
paramiko,psutil,openpyxl(写Excel),pymongo(写MongoDB)。 - 核心逻辑:收集信息 -> 整理成字典列表 -> 持久化存储。
推荐学习顺序
- 先做文件系统案例(1, 2, 3):掌握
os和基本逻辑。 - 再做网络监控案例(4, 5):掌握
socket和paramiko,体验远程控制。 - 做备份脚本(7):掌握
subprocess调用外部命令。 - 最后挑战云API(9)和综合工具(11)。
一个小建议
你在实际工作中遇到的最繁琐、重复性最高的手工操作是什么?直接拿Python去自动化它,这就是最好的案例。
- 每天手动登录服务器查日志? -> 写脚本
tail -f并通过关键词过滤。 - 每周发一份服务器状态报表? -> 写脚本采集数据,自动用
openpyxl生成Excel发邮件。
动手写一个自己真正需要的工具,比照着教程敲案例进步要快得多。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播