
批量管理 Linux 服务器,核心是把重复操作自动化,避免逐台登录执行命令。关键不在于工具多高级,而在于是否稳定、可追溯、易维护。
用 SSH 密钥 + 循环脚本最轻量
无需额外安装工具,适合 5–20 台常规服务器。前提是已配置好免密登录(必须先完成 ssh-copy-id 或手动部署公钥)。
- 写一个包含所有目标 IP 或主机名的列表文件,比如 servers.txt,每行一个地址
- 用 for 循环配合 ssh 执行命令,例如同步时间:
while read host; do ssh "$host" "sudo systemctl restart systemd-timesyncd"; done - 加 timeout 10 防卡死,加 || echo "$host failed" 记录失败节点
Ansible 是中小规模首选方案
无客户端、YAML 描述清晰、幂等性强,适合需要版本控制和协作的场景。控制机只需 Python 和 ansible 命令行工具。
SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板
- 定义 inventory 文件(如 hosts),分组管理:
[web]
192.168.1.10
192.168.1.11 - 一条命令批量执行:
ansible web -m shell -a "uptime" - 用 playbook 管理复杂流程,比如更新软件包+重启服务,支持变量、条件、错误处理
简单任务优先考虑 pssh(Parallel SSH)
比纯 shell 循环强在并发执行、结果聚合,比 Ansible 轻量,适合运维临时批量操作。
- 安装后用 pssh -h hosts.txt -l user -i "df -h" 并发查看磁盘空间
- -i 显示每台输出,-o ./output/ 把结果按主机存为文件,方便后续 grep 或统计
- 失败时自动跳过,用 -x "-o ConnectTimeout=5" 控制连接超时
安全与可维护性不能妥协
批量操作威力大,出错影响广,必须前置约束和事后验证。
- 所有脚本和 playbook 必须用普通用户执行,提权操作显式写 become: yes 或 sudo,禁用 root 直连
- 敏感操作(如 rm、reboot)加 --limit 或先用 --check 模拟运行
- 每次批量动作记日志:ansible ... | tee run-$(date +%F).log,保留时间戳和返回码









