Enviado em 10/04/2013 - 15:50h
Boa tarde pessoal, alguem poderia dar uma ajuda?
Seguinte, criei um script para jogar um outro script em várias estações, através de um arquivo TXT. Basicamente ele irá varrer o aquivo ips.txt, e a cada linha lida ele joga o script via scp, em seguida loga na estação cria uma entrada no crontab e executa o script. Tratando a sáida de sucesso/erro jogando o IP nos arquivos sucesso.txt e falha.txt.
Porém, no primeiro "sucesso" o script finaliza e não lê o próximo IP para continuar o processo. Segue abaixo o código:
#!/bin/bash
while read linha
do
scp /root/backup.sh root@$linha:/root/ && ssh root@$linha 'cp /root/backup.sh /usr/bin/ ; chmod +x /usr/bin/backup.sh ; echo "59 23 * * * root /usr/bin/backup.sh" >> /etc/crontab ; /usr/bin/backup.sh'
condicao=`echo $?`
if [ $condicao -eq 0 ]; then
echo $linha - `date +%H:%M' '%D` >> /root/logs_backup/sucesso.txt
else
echo $linha - `date +%H:%M' '%D` >> /root/logs_backup/falha.txt
fi
done < ips.txt
Obrigado!
Seguinte, criei um script para jogar um outro script em várias estações, através de um arquivo TXT. Basicamente ele irá varrer o aquivo ips.txt, e a cada linha lida ele joga o script via scp, em seguida loga na estação cria uma entrada no crontab e executa o script. Tratando a sáida de sucesso/erro jogando o IP nos arquivos sucesso.txt e falha.txt.
Porém, no primeiro "sucesso" o script finaliza e não lê o próximo IP para continuar o processo. Segue abaixo o código:
#!/bin/bash
while read linha
do
scp /root/backup.sh root@$linha:/root/ && ssh root@$linha 'cp /root/backup.sh /usr/bin/ ; chmod +x /usr/bin/backup.sh ; echo "59 23 * * * root /usr/bin/backup.sh" >> /etc/crontab ; /usr/bin/backup.sh'
condicao=`echo $?`
if [ $condicao -eq 0 ]; then
echo $linha - `date +%H:%M' '%D` >> /root/logs_backup/sucesso.txt
else
echo $linha - `date +%H:%M' '%D` >> /root/logs_backup/falha.txt
fi
done < ips.txt
Obrigado!