
Eu tenho um número n de servidores como , c0001.test.cloud.com
e quero fazer o ssh entre esses servidores como: do servidor: c0001 faça o ssh para c0002 e depois saia do servidor. Volte para c0001, faça o ssh para c0003 e saia do servidor.c0002.test.cloud.com
c0003.test.cloud.com
Portanto, desta forma ele executará o script sem inserir nenhuma entrada durante o tempo de execução e poderemos ter um número n de servidores. Eu escrevi um script:
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
Mas este script não está funcionando bem. Também verifiquei passando parâmetros como: -o StrictHostKeyChecking=no
e <<'ENDSSH'
mas não está funcionando. Então, como podemos obter ssh entre vários servidores usando scripts?
Responder1
- Você está dizendo , usando como uma variável de shell. Mas isso significa que você precisa referenciar essa variável como , por exemplo ,.
for j in …(values)… do ssh appAccount@j done
j
$j
ssh "appAccount@$j"
- Você precisa de um ponto e vírgula (
;
) ou uma nova linha entressh "appAccount@$j"
edone
.
Existem outros problemas — por exemplo, todas as referências de variáveis do shell devem ser citadas — mas o acima deve ajudá-lo a começar.