Linux 批量运维神器:pssh 命令详解,并行 SSH 批量管理服务器超丝滑
Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz8一、命令简介psshParallel SSH是一个用 Python 编写的并行 SSH 工具用于在多台服务器上同时执行命令或传输文件。它特别适合批量服务器管理和自动化运维任务相比传统的循环 SSH 操作pssh 能显著提高管理效率。核心特性并行在多台主机上执行命令支持文件传输通过 pscp、psync 等配套工具支持标准输入 / 输出重定向支持超时设置和错误处理可配置并发连接数前提条件使用 pssh 前必须在所有目标服务器上配置 SSH 密钥认证确保无需密码即可登录。二、语法格式基本语法结构bash运行pssh [选项] [命令]常见调用方式bash运行pssh -H host1 host2 host3 [选项] command pssh -h host_file [选项] command三、常用选项及说明1. 主机指定选项表格选项参数格式说明-h, --hosts文件路径指定包含主机列表的文件每行格式为[user]host[:port]-H, --host主机字符串直接在命令行指定主机多个主机用空格分隔格式同上-l, --user用户名指定登录用户名覆盖主机列表中指定的用户-p, --par数字最大并发连接数默认32-t, --timeout秒数连接超时时间默认无限制2. 输出控制选项表格选项说明-o, --outdir指定标准输出保存目录每个主机的输出保存为单独文件-e, --errdir指定错误输出保存目录-i, --inline内联输出模式实时显示每个主机的输出结果-I, --send-input从标准输入读取数据并发送到所有主机-P打印输出到标准输出同时显示主机名前缀-v详细模式显示调试信息3. 认证与连接选项表格选项说明-A手动输入密码模式不推荐建议使用密钥认证-x额外的 SSH 参数用空格分隔-X额外的 SSH 参数单个参数模式-OSSH 配置选项--inline-stdout内联标准输出--inline-stderr内联标准错误4. 其他选项表格选项说明--version显示版本信息--help显示帮助信息四、示例用法 基础示例1. 在多台主机上执行简单命令bash运行# 使用主机文件 pssh -h servers.txt -i uptime # 直接在命令行指定主机 pssh -H user1192.168.1.10 user2192.168.1.11 -i df -h2. 指定并发数和超时时间bash运行pssh -h servers.txt -p 10 -t 30 -i service nginx status 输出管理示例3. 保存输出到文件bash运行# 保存标准输出到指定目录 pssh -h servers.txt -o /tmp/pssh-output hostname # 同时保存标准输出和错误输出 pssh -h servers.txt -o /tmp/output -e /tmp/error ls /var/log4. 实时查看输出bash运行# 使用内联模式查看实时输出 pssh -h servers.txt -i tail -5 /var/log/syslog 高级用法示例5. 从标准输入读取命令bash运行echo date whoami | pssh -h servers.txt -I6. 使用额外 SSH 参数bash运行# 指定非标准端口 pssh -h servers.txt -x -p 2222 -i hostname # 使用多个 SSH 参数 pssh -h servers.txt -x -o StrictHostKeyCheckingno -o ConnectTimeout10 -i uname -a7. 批量检查服务状态bash运行# 检查多台服务器的 MySQL 状态 pssh -h db_servers.txt -i systemctl status mysql # 检查磁盘使用情况并排序 pssh -h servers.txt -i df -h | sort -k5 -hr | head -5 实际运维场景8. 批量更新系统bash运行# 安全更新 pssh -h production_servers.txt -t 300 -i apt-get update apt-get upgrade -y9. 收集系统信息bash运行# 创建主机信息报告 pssh -h servers.txt -o /tmp/system-info echo Hostname hostname echo Memory free -h echo Disk df -h echo Load uptime 10. 批量部署配置文件bash运行# 先使用 pscp 复制文件然后重启服务 pscp -h servers.txt /local/nginx.conf /etc/nginx/nginx.conf pssh -h servers.txt -i nginx -t systemctl reload nginx五、注意事项1. 认证配置必须配置 SSH 密钥认证pssh 不支持交互式密码输入除非使用 -A 选项但不推荐。测试密钥认证ssh userhost应能直接登录无需密码。建议使用 SSH 代理或配置正确的密钥路径。2. 主机文件格式主机文件每行格式应为[user]hostname[:port]text# 示例 hosts.txt 文件 user1server1.example.com server2.example.com:2222 192.168.1.100 admin192.168.1.101:22223. 性能与资源默认并发数为 32可根据网络状况和目标服务器性能调整-p参数。管理大量主机时注意监控本地及目标主机的资源使用情况。Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz8