实际上,我想在多个主机上同时执行以下 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"