gpt4 book ai didi

bash 脚本并行 ssh 远程命令

转载 作者:行者123 更新时间:2023-11-29 09:01:35 26 4
gpt4 key购买 nike

我有一个脚本可以通过 ssh 连接在几台不同的机器上触发远程命令。脚本是这样的:

for server in list; do
echo "output from $server"
ssh to server execute some command
done

这显然是时间问题,因为它需要建立 ssh 连接、触发命令、等待应答、打印。我想要的是拥有一个脚本,该脚本会尝试一次建立所有连接并返回回显“来自 $server 的输出”和命令输出,因此在列表顺序中没有必要。

我已经用谷歌搜索了一段时间,但没有找到答案。在按照一个线程建议的命令运行后,我无法取消 ssh session ,因为我需要一个输出并且我不能使用其他线程中建议的并行 gnu。我也不能使用任何其他工具,我不能在这台机器上安装/安装任何东西,唯一可用的工具是 GNU bash,版本 4.1.2(1)-release。

另一个问题是如何限制这样的 ssh session ?如果我简单地粘贴 5 多行“ssh 连接,执行一些命令”,它实际上什么都不做,或者只在列表中的第一个执行。 (如果我粘贴 3-4 行,它会起作用)。谢谢

最佳答案

你试过吗?

for server in list; do
ssh user@server "command" &
done
wait
echo finished

更新:启动子shell:

for server in list; do
(echo "output from $server"; ssh user@server "command"; echo End $server) &
done
wait
echo All subshells finished

关于bash 脚本并行 ssh 远程命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26338438/

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