linux批量运维核心是“一次编写、多机执行”,关键在标准化(统一ssh认证、python/shell版本、基础工具、时间同步)、自动化(pssh适用于轻量场景,ansible适用于中大型场景)和错误可控(加失败退出、dry-run、超时控制、结果汇总)。

Linux批量运维核心是“一次编写、多机执行”,关键在标准化、自动化和错误可控。不靠手动逐台操作,而是用脚本+分发工具把重复动作变成一条命令完成。
统一环境是前提:先搞定基础一致性
批量操作失败,80%源于环境差异。必须提前统一几件事:
- 所有目标主机开启SSH无密码登录(配好公钥认证,禁用密码登录更安全)
- 确保Python 3.6+ 或 Bash 版本一致(尤其用Ansible或自写Python脚本时)
- 基础工具包统一安装(如curl、jq、rsync、lsof),可用yum/apt批量装一次
- 时间同步打开(chrony或ntpd),避免日志/证书/定时任务因时间差异常
轻量场景用Shell + pssh最直接
几十台以内、操作简单(比如改配置、重启服务、查磁盘),pssh(parallel-ssh)够用又不依赖额外服务:
- 装pssh:pip3 install parallel-ssh 或 yum install pssh
- 准备主机列表文件hosts.txt(每行一个IP或主机名)
- 批量执行命令:pssh -h hosts.txt -l root -i "df -h | grep '/$'"
- 带脚本上传执行:pscp -h hosts.txt -l root cleanup.sh /tmp/ && pssh -h hosts.txt -l root -i "bash /tmp/cleanup.sh"
中大型运维选Ansible:无需Agent,YAML即代码
上百节点、需版本控制、回滚、条件判断、模板渲染,Ansible是事实标准:
- 控制机装Ansible,被控端只要Python和SSH通——不用装任何客户端
- 用Inventory定义主机组(如[web]、[db]),支持动态生成
- 一个playbook就能完成“停服务→备份配置→替换二进制→校验MD5→启服务→健康检查”整套流程
- 敏感变量用ansible-vault加密,配合Git管理,审计清晰
脚本健壮性比功能更重要
批量脚本跑崩一台容易,但跑崩一百台就是事故。必须加这几道保险:
- 每条远程命令加|| exit 1,失败立刻中断,不继续污染其他机器
- 关键操作前先做dry-run(比如rsync --dry-run或Ansible加--check)
- 超时控制:pssh加-o "ConnectTimeout=5",Ansible设timeout: 30
- 结果汇总:用pssh -h hosts.txt -i ... 2>&1 | grep -E "(SUCCESS|FAILED)"快速看成败分布
不复杂但容易忽略——批量不是追求“全选执行”,而是“精准触发、过程可见、失败可溯”。脚本写完,先在三台不同环境的机器上手动过一遍流程,再放开批量。










