在多个主机上并行运行具有多个参数的bash脚本

在多个主机上并行运行具有多个参数的bash脚本

实际上,我想在多个主机上同时执行以下 bash 脚本,我尝试使用 pssh 命令:

pssh -h hosts.txt -i -I < myscript arg1 arg2 arg3 

但它没有执行,所以请告诉我执行它的正确方法......

答案1

GNU Parallel 对此有一个特殊模式--onall

parallel --slf hosts.txt --onall myscript.sh ::: arg1 arg2 arg3

这将在所有机器上运行:

myscript.sh arg1
myscript.sh arg2
myscript.sh arg3

如果您不想改变参数,您可以使用--nonall

parallel --slf hosts.txt --nonall myscript.sh arg1 arg2 arg3

它将运行:

myscript.sh arg1 arg2 arg3

在所有机器上。使用 -j 来调整要并行登录的机器数量。

答案2

你可以这样做GNU 并行

cat hosts.txt | parallel ssh {} "'bash -s' < ./myscript.sh arg1 arg2 arg3"

相关内容