批量服务器操作实战:100 台服务器一键管控(含脚本 + 避坑指南)
在大规模服务器运维场景中,手动逐台操作 100 台服务器不仅效率低下,还极易出现人为失误。本文将基于 SSH 协议实现 100 台服务器的一键管控,涵盖批量执行命令、文件分发、状态监控等核心功能,并结合实战经验梳理避坑指南,帮助你高效、安全地管理服务器集群。
一、前置准备
1. 核心依赖
- 环境要求:控制端为 Linux 系统(推荐 CentOS7+/Ubuntu18.04+),被控端为 Linux 系统(主流发行版均可)。
- 核心工具:
sshpass:免交互输入 SSH 密码(测试环境可用,生产环境优先密钥认证);ansible(可选):进阶批量运维工具,本文先基于原生 Shell+SSH 实现基础版,再补充 Ansible 进阶方案;parallel-ssh:高性能并行 SSH 工具,适合大规模服务器批量操作。
2. 环境初始化(控制端)
# CentOS/RHEL
yum install -y sshpass openssh-clients parallel-ssh
# Ubuntu/Debian
apt update && apt install -y sshpass openssh-clients pssh
3. 服务器信息整理
新建服务器清单文件 server_list.txt,格式为 IP:端口:用户名:密码(生产环境建议仅保留 IP,用密钥认证):
192.168.1.10:22:root:Passwd@123
192.168.1.11:22:root:Passwd@123
192.168.1.12:22:root:Passwd@123
# ... 共 100 台服务器,按此格式补充
二、核心脚本实现(基础版:Shell+SSH)
1. 批量执行命令脚本(run_cmd.sh)
该脚本可一键在 100 台服务器上执行指定命令(如查看内存、重启服务、安装软件等)。
#!/bin/bash
# 批量执行命令脚本
# 使用方式:./run_cmd.sh "要执行的命令"
[ -ne 1 ];
1
CMD=
SERVER_LIST=
LOG_DIR=
-p
IFS= -r IP PORT USER PASS;
[[ -z || =~ ^# ]];
sshpass -p ssh -o StrictHostKeyChecking=no -p @ > 2>&1
[ $? -eq 0 ];
<

