
Tengo n cantidad de servidores como , c0001.test.cloud.com
y quiero hacer el ssh entre estos servidores como: desde el Servidor: c0001 hacer el ssh a c0002 y luego salir del servidor. Vuelva a c0001, haga el ssh a c0003 y luego salga del servidor.c0002.test.cloud.com
c0003.test.cloud.com
De esta manera, ejecutará el script sin ingresar ninguna entrada durante el tiempo de ejecución y podremos tener n servidores. He escrito un guió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
Pero este script no funciona bien. También lo comprobé pasando parámetros como: -o StrictHostKeyChecking=no
y <<'ENDSSH'
pero no funciona. Entonces, ¿cómo podemos lograr ssh entre múltiples servidores usando scripts?
Respuesta1
- Estás diciendo , usando como variable de shell. Pero eso significa que debe hacer referencia a esa variable como , por ejemplo ,.
for j in …(values)… do ssh appAccount@j done
j
$j
ssh "appAccount@$j"
- Necesitas un punto y coma (
;
) o una nueva línea entressh "appAccount@$j"
ydone
.
Hay otros problemas (por ejemplo, todas las referencias a las variables del shell deben citarse), pero lo anterior debería ayudarle a comenzar.