O bash espera ver EOF
no início de uma linha no seu script. Tente remover o recuo antes de EOF
.
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?
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! :)
Tags ssh linux centos shell-script script