【发布时间】:2026-01-14 15:50:01
【问题描述】:
我有 n 台服务器,例如 c0001.test.cloud.com、c0002.test.cloud.com、c0003.test.cloud.com,我想在这些服务器之间进行 ssh,例如: 从服务器:c0001 对 c0002 执行 ssh,然后退出服务器。 回到c0001做ssh到c0003然后退出服务器。
因此,通过这种方式,它将在运行时执行脚本而无需输入任何输入,并且我们可以拥有 n 个服务器。 我写了一个脚本:
str1=c0001.test.cloud.com,c0002.test.cloud.com,c0003.test.cloud.com
string="$( cut -d ',' -f 2- <<< "$str1" )"
echo "$string"
for j in $(echo $string | sed "s/,/ /g")
do
ssh appAccount@j
done
但是这个脚本运行不正常。我也通过传递参数检查了它
喜欢:-o StrictHostKeyChecking=no 和 <<'ENDSSH' 但它不起作用。
【问题讨论】:
-
如果你想让它退出,你需要你的
ssh来运行一个命令,甚至是ssh appAccount@j exit但除此之外“运行不正常”非常模糊,它到底是什么没有做你想做的事情,或者你不想做的事情是什么?