如何在 ssh 中跳过特定主机?

如何在 ssh 中跳过特定主机?

我已经设置了基于密钥的身份验证,以便使用 ssh 访问我的所有客户端计算机。但是,如果我在这些客户端中运行任何脚本,并且假设特定主机关闭,则终端会在该会话中挂起,并且需要很长时间才能转到下一个主机。还有其他方法可以解决这个问题吗?或者是否可以跳过关闭的主机,以便它应该与下一个主机一起运行?我正在使用 ubuntu 11.04。有人能帮帮我吗?提前谢谢。

答案1

根据您的评论,我建议如下:

while read -r line
do
    echo "$line" > sh scriptname.sh &
done < "$file"

wait

答案2

@queueoverflow 的答案是正确的,但我认为它不必要地复杂。也许这个更容易阅读?

ssh server1 do something &
ssh server2 do something at the same time &
ssh server3 do yet more things &
wait

意思&是在后台启动它,并wait挂起直到所有后台任务都退出。所有任务将并行运行,整个过程应该花费最长任务的时间,而不会更多。

相关内容