Como SSH serviço múltiplo com um no SHELL?

0

Eu gostaria de acessar alguns servidores via SSH, executar alguns comandos e sair. Faça isso para muitos servidores.

Eu sei que posso fazer isso apenas para uma máquina, com este script:

ssh **IP** << EOF

chown -R **COMMAND 1**

chown -R **COMMAND 2**

chmod -R 775 **COMMAND 3**

EOF

Mas quando tento colocar isso dentro de um FOR no SHELL, fico dizendo line 17: syntax error: unexpected end of file .}

Aqui está o meu código para vários servidores SSH:

#!/bin/bash

#user already added to group nagios by LDAP

declare -a arr=( **IP1 IP2 IP3** ...)

for i in ${arr[@]}
do
   echo  "Acessing server $i"
   ssh IP << EOF
   chown -R COMMAND 1
   chown -R COMMAND 2
   chmod -R 775 COMMAND 3
   EOF
done

Onde está o meu erro aqui?

    
por Valter Silva 01.03.2013 / 15:03

2 respostas

2

O bash espera ver EOF no início de uma linha no seu script. Tente remover o recuo antes de EOF .

    
por 01.03.2013 / 15:07
1

Tente com o caractere de nova linha após o primeiro EOF e antes do último EOF.

Outra coisa que me vem à mente é que, você também pode usar o pssh (SSH paralelo) para fazer o trabalho. Eu só não sei se isso se encaixa no seu projeto.

Espero que ajude! :)

    
por 01.03.2013 / 15:11