非 ansible 主机批量执行命令方法:psssh 和 pscp(随手记)

对集群的服务器批量运行脚本,但不想麻烦使用 ansible 写 playbook 时,可以用pssh。

pssh 是常用的批量执行工具,直接通过 SSH 在多个服务器上并行执行命令。

使用方法

1. 先准备 NC IP 列表文件

shell 复制代码
cat /tmp/iplist
10.0.0.1
10.0.0.2
10.0.0.3

2. 上传脚本(scp/pscp)

shell 复制代码
for i in `cat /tmp/iplist`;do scp /tmp/xxx.py $i:/tmp/;done

# 或者用 pscp
# pscp [选项] 本地路径 远程路径
pscp -h /tmp/iplist /tmp/xxx.py /tmp/

pscp 常用参数如下:

参数 说明
-h 文件 主机清单文件
-H "host1,host2" 直接在命令行指定主机,逗号分隔
-l 用户 登录用户
-p 数量 并行数,默认 32
-t 秒 连接超时时间
-o 目录 标准输出保存目录
-e 目录 错误输出保存目录
-x "参数" 额外传给 ssh 的参数
-O "选项=值" 传给 ssh 的配置选项
-r 递归复制目录
-v 显示详细过程
-q 静默模式

举例:

shell 复制代码
# 把本地文件并行复制到多台主机
pscp -h hosts.txt -l admin -p 50 /local/config.txt /remote/config.txt

# 递归上传目录,并指定私钥
pscp -h hosts.txt -r -x "-i ~/.ssh/id_rsa" /local/scripts /opt/scripts

# 忽略主机密钥检查
pscp -h hosts.txt -O "StrictHostKeyChecking=no" /local/file /remote/file

3. 批量执行脚本(脚本内容用引号包裹)

shell 复制代码
pssh -ih /tmp/iplist  "python /tmp/xxx.py"

# 如果不希望前台输出而是保存到文件中
pssh -ih /tmp/iplist "python /tmp/xxx.py" > result.txt

pssh 参数解释:

参数 说明
-h 文件 主机清单文件
-H "host1,host2" 命令行直接指定主机
-l 用户 登录用户
-p 数量 并行数,默认 32
-t 秒 连接超时
-o 目录 标准输出保存目录
-e 目录 错误输出保存目录
-i 直接在终端显示每台主机的输出
-x "参数" 额外传给 ssh 的参数
-O "选项=值" 传给 ssh 的配置选项
-I 从标准输入读取内容并传给远程命令
-v 显示详细过程
相关推荐
Android系统攻城狮2 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根3 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
花间相见4 小时前
【计算基础|网络14】网络层:IP、ICMP 与 ping
网络·网络协议·tcp/ip
倒头就睡的小比特5 小时前
Linux基础指令3
linux·服务器
梦帮科技5 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
半杯咖啡半行码6 小时前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络
智能直播6 小时前
RK3528 V4L2 框架 UVC 接口自动获取 H.264 / MJPEG / YUYV 格式:从内核采集到硬解分发
java·网络·实时音视频·视频编解码·h.264
别动我齐刘海6 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
龙虾电话6 小时前
语音机器人打断不进去:VAD 双阈值迟滞里一个共用的 bool,和它引发的连锁误判
linux
honsor6 小时前
机房IP化改造首选:以太网温湿度传感器,PoE供电+Modbus TCP一网搞定
linux·运维·服务器