gpt4 book ai didi

linux - 如何向具有不同参数的远程节点发出并行命令?

转载 作者:太空狗 更新时间:2023-10-29 11:19:31 26 4
gpt4 key购买 nike

我需要在多个 Ubuntu-Linux 服务器上并行执行一个应用程序,同时为不同的服务器提供不同的参数。我试图用谷歌搜索它,但找不到可能的解决方案。我什至尝试过 ssh/pdsh/parallel,但没有成功。

为了进一步解释该场景,这里是一个非工作示例(使用 pdsh),其中 script.sh 应该在所有 3 个服务器上并行执行,但参数不同。仅供引用,我已经准备好公共(public)/私有(private) ssh-key(无密码登录)。

$ pdsh -w server1,server2,server3 -l username script.sh args
其中 args 对于 server1 应该是 1,对于 server2 应该是 2 等等。

如果有人可以使用 pdsh 或 Ubuntu 中可用的其他工具帮助我实现这一点,我将不胜感激。感谢您的帮助。

问候
萨钦

最佳答案

我过去曾使用 cssh 做过类​​似的事情,但我不明白为什么 pdsh 不能使用相同的方法(尽管我已经从未使用过)。

我的假设是您有一个在所有系统上同时运行的交互式 session 并且您能够在每个 session 中创建新的环境变量。如果 pdsh 不允许这样做,cssh 可以

在启动脚本之前,根据主机名设置环境变量。

ARG=$( case $(hostname) in server1) echo 1;; server2) echo 2;; server3) echo 3;; esac )
script.sh $ARG

假设您想要的数字编码在您的主机名中(如您的问题中所建议的),您可以像这样简化它:

script.sh ${HOSTNAME#server}

关于linux - 如何向具有不同参数的远程节点发出并行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18941100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com