Script de Backup com While e IFS

1. Script de Backup com While e IFS

Sergio Lenaz
lenaz

(usa Debian)

Enviado em 06/03/2017 - 17:13h

Boa tarde pessoal, blz?

Preciso de uma ajuda de vcs.
Eu tenho uma rede de radios Ubiquiti, blz! Preciso fazer backup das configs do radio, e cada radio tem um user e senha diferentes.
Beleza tambem. Tenho o seguinte script:

#!/bin/bash

export arquivo="/home/lista_para_backup.txt"
export destino="/home/paineis/"

export INICIO=`date +%d-%m-%Y_%H:%M:%S`
echo -e "Backup iniciado as $INICIO" >> /home/log_backups.log
IFS=','
while read f1 f2 f3 f4

do
sshpass -p $f4 ssh $f2 -l $f3 -o StrictHostKeyChecking=no "cat /tmp/system.cfg" > $destino/$f1-ip-$f2-backup-`date +%d-%m-%Y`.cfg 2> /dev/null && export FIM=`date +%d-%m-%Y_%H:%M:%S` && echo -e "O backup de $f1 - $f2 foi efetuado com sucesso em $FIM" >> /home/log_backups.log || echo -e "Ocorreu um erro ao realizar o backup de $f1 - $f2 as `date +%d-%m-%Y_%H:%M:%S`" >> /home/log_backups.log

done < $arquivo



Nesse arquivo estão as informações nessa ordem, e dessa forma:

Nome_do_Radio_01,ip_do_radio,usuario,senha
Nome_do_Radio_02,ip_do_radio,usuario,senha
Nome_do_Radio_03,ip_do_radio,usuario,senha


O que é meu problema: Quando roda o script, ele realiza o bkp do primeiro radio da lista certinho, porem não realiza dos demais.

Alguem sabe o que pode ser e como resolver?
Fico no aguardo galera, e desde ja, meu muito obrigado a todos!


  


2. Vamos la

Bruno Cavalcanti
Bruno_Cavalcanti

(usa CentOS)

Enviado em 07/03/2017 - 17:14h

no inicio do script coloque o comando for


ex:

for va in `cat-caminho-do-caquivo-txt-senhas` do


subistitua o conteudo do arquivo pelo ${va}

é mais ou menos isso, tem que ver so a formatação


3. Re: Script de Backup com While e IFS

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 07/03/2017 - 21:29h

lenaz escreveu:

Boa tarde pessoal, blz?

Preciso de uma ajuda de vcs.
Eu tenho uma rede de radios Ubiquiti, blz! Preciso fazer backup das configs do radio, e cada radio tem um user e senha diferentes.
Beleza tambem. Tenho o seguinte script:

#!/bin/bash
export arquivo="/home/lista_para_backup.txt"
export destino="/home/paineis/"
export INICIO=`date +%d-%m-%Y_%H:%M:%S`
echo -e "Backup iniciado as $INICIO" >> /home/log_backups.log
IFS=','
while read f1 f2 f3 f4;do
sshpass -p $f4 ssh $f2 -l $f3 -o StrictHostKeyChecking=no "cat /tmp/system.cfg" > $destino/$f1-ip-$f2-backup-`date +%d-%m-%Y`.cfg 2> /dev/null && export FIM=`date +%d-%m-%Y_%H:%M:%S` && echo -e "O backup de $f1 - $f2 foi efetuado com sucesso em $FIM" >> /home/log_backups.log || echo -e "Ocorreu um erro ao realizar o backup de $f1 - $f2 as `date +%d-%m-%Y_%H:%M:%S`" >> /home/log_backups.log
done < $arquivo



Nesse arquivo estão as informações nessa ordem, e dessa forma:

Nome_do_Radio_01,ip_do_radio,usuario,senha
Nome_do_Radio_02,ip_do_radio,usuario,senha
Nome_do_Radio_03,ip_do_radio,usuario,senha


O que é meu problema: Quando roda o script, ele realiza o bkp do primeiro radio da lista certinho, porem não realiza dos demais.

Alguem sabe o que pode ser e como resolver?
Fico no aguardo galera, e desde ja, meu muito obrigado a todos!



Boa noite.
Segue sugestão, com pequena alteração no "while".


#!/bin/bash
export arquivo="/home/lista_para_backup.txt"
export destino="/home/paineis/"
export INICIO=`date +%d-%m-%Y_%H:%M:%S`
echo -e "Backup iniciado as $INICIO" >> /home/log_backups.log
while IFS=',' read -r f1 f2 f3 f4;do
sshpass -p $f4 ssh $f2 -l $f3 -o StrictHostKeyChecking=no "cat /tmp/system.cfg" > $destino/$f1-ip-$f2-backup-`date +%d-%m-%Y`.cfg 2> /dev/null && export FIM=`date +%d-%m-%Y_%H:%M:%S` && echo -e "O backup de $f1 - $f2 foi efetuado com sucesso em $FIM" >> /home/log_backups.log || echo -e "Ocorreu um erro ao realizar o backup de $f1 - $f2 as `date +%d-%m-%Y_%H:%M:%S`" >> /home/log_backups.log
done < $arquivo


Veja a possibilidade de , antes de fazer uma nova conexão, encerrar a anterior.

att.:
marcelo oliver


4. Re: Script de Backup com While e IFS

Sergio Lenaz
lenaz

(usa Debian)

Enviado em 08/03/2017 - 14:27h

msoliver .

Fiz a alteração que disse, mas o resultado é o mesmo. Ele faz o bkp do primeiro iten da lista certinho, mas os outros não.. no log, nem tem registro de ter iniciado o dos outros.. eh como se o while só tivesse lendo a primeira linha do arquivo.

E dentro do script, como posso fazer p/ ele encerrar uma seção antes de iniciar outra ?


5. Re: Script de Backup com While e IFS

Sergio Lenaz
lenaz

(usa Debian)

Enviado em 08/03/2017 - 14:29h

Bruno_Cavalcanti .

Acredito que pela estrutura que tenho, o for não me atende. Preciso ler 4 variaveis em linha.

Ou eu que não entendi o que vc disse. kkk


6. Re: Script de Backup com While e IFS

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 08/03/2017 - 15:52h

lenaz escreveu:

msoliver .

Fiz a alteração que disse, mas o resultado é o mesmo. Ele faz o bkp do primeiro iten da lista certinho, mas os outros não.. no log, nem tem registro de ter iniciado o dos outros.. eh como se o while só tivesse lendo a primeira linha do arquivo.

E dentro do script, como posso fazer p/ ele encerrar uma seção antes de iniciar outra ?


Boa tarde Lenaz.
Segundo o que "andei lendo" . . . Para encerrar a conexão do ssh, usa-se exit, , mas nesse caso, não sei se encerrará o script . . .
Só testando . . .

marcelo oliver




7. Re: Script de Backup com While e IFS

Sergio Lenaz
lenaz

(usa Debian)

Enviado em 08/03/2017 - 18:20h

msoliver escreveu:

lenaz escreveu:

msoliver .

Fiz a alteração que disse, mas o resultado é o mesmo. Ele faz o bkp do primeiro iten da lista certinho, mas os outros não.. no log, nem tem registro de ter iniciado o dos outros.. eh como se o while só tivesse lendo a primeira linha do arquivo.

E dentro do script, como posso fazer p/ ele encerrar uma seção antes de iniciar outra ?


Boa tarde Lenaz.
Segundo o que "andei lendo" . . . Para encerrar a conexão do ssh, usa-se exit, , mas nesse caso, não sei se encerrará o script . . .
Só testando . . .

marcelo oliver



Obrigado pelas dicas meu caro. Eu ja havia usado o exit e nada...

Acabei seguindo a dica do amigo Bruno_Cavalcanti e consegui fazer uma estrutura FOR se encaixar na minha necessidade.

Obrigados pela ajuda, dos 2 =D


8. Feliz em ter ajudado

Bruno Cavalcanti
Bruno_Cavalcanti

(usa CentOS)

Enviado em 08/03/2017 - 21:16h

lenaz escreveu:

msoliver escreveu:

lenaz escreveu:

msoliver .

Fiz a alteração que disse, mas o resultado é o mesmo. Ele faz o bkp do primeiro iten da lista certinho, mas os outros não.. no log, nem tem registro de ter iniciado o dos outros.. eh como se o while só tivesse lendo a primeira linha do arquivo.

E dentro do script, como posso fazer p/ ele encerrar uma seção antes de iniciar outra ?


Boa tarde Lenaz.
Segundo o que "andei lendo" . . . Para encerrar a conexão do ssh, usa-se exit, , mas nesse caso, não sei se encerrará o script . . .
Só testando . . .

marcelo oliver



Obrigado pelas dicas meu caro. Eu ja havia usado o exit e nada...

Acabei seguindo a dica do amigo Bruno_Cavalcanti e consegui fazer uma estrutura FOR se encaixar na minha necessidade.

Obrigados pela ajuda, dos 2 =D


Fico feliz em ter contribuido!

Meus professores sempre me ensinaram a pescar, mas nunca me deram 1 peixe se quer...

e sou muito grato por isso. Abraço.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts