Backups automáticos de rádios Intelbras APC5

Publicado por Joabe G.Q. Kachorroski (última atualização em 28/07/2017)

[ Hits: 3.014 ]

Homepage: http://commitlinux.com.br/

Download Script_Backup_IntelbrasAPC5.sh.js




Olá galera!

Pouco tempo atrás prestei um serviço a uma provedora de internet que tinha muitos rádios Intelbras APC5 e tive que criar uma solução para realizar os backups em tempo real e enviasse por e-mail e FTP. Os recém lançados rádio Intelbras aqui no Brasil utilizam uma ferramenta de gerenciamento que fornece backup integrado para todos os produtos chamada WNMS, a ferramenta também é utilizada lá fora por quem usa Deliberant ou LigoWave.

Porém se você é uma pessoa como eu, que não gosta de instalar vários gerenciadores para gerenciar cada marca de equipamento e gosta de ver o que está acontecendo, tenho uma solução bem interessante e simples, que aqui mesmo tratei de como utilizá-la em produtos MikrotiK e Ubiquiti.

Para isso apenas necessitamos de uma máquina Linux para realizar a tarefa.

Primeiro é necessário instalar o SSHPASS, para que não seja necessário inserir a senha manual a cada rádio que iremos realizar o backup:

$ sudo apt-get install sshpass

Pronto, é só isso, basta rodar o script e acessar seu email ou servidor FTP, agende o script em seu crontab e seja feliz.

  



Esconder código-fonte

#=======================================================================#
## backup_apc5.sh - Scripts para gerar backups e enviar para FTP e Email.
## Escrito por: Joabe Guimarães Querino Kachorroski  (Campo Grande - MS)
## E-mail: joabejbk@gmail.com
## Sistemas Operacional: Ubuntu GNU/Linux 12.04
## Data de criação deste script Quin 29/09/2016 às 14:05:09
## Versão:0.1

#=======================================================================#
#=========== CONFIGURACAO GLOBAL DE ACESSO SSH DOS RADIOS ==============#
ssh_user="user"
ssh_pass="password"
ssh_porta="22"

ssh1_user="user"
ssh1_pass="user"
ssh1_porta="22"

#================== CONFIGURACAO GLOBAL DO E-MAIL === ==================#
de="emailquevai@enviar.com.br"
para="emailquevai@receber.com.br"
smtp="smtp.gmail.com"
porta="587"
user="emailquevai@enviar.com.br"
senha="password"

#============== COMANDO PARA PEGAR O ARQUIVO DE CONFIGURACAO ===========#
comando="cat /tmp/system.cfg"
aps_online="/home/intelbras/mkauthapc/aps_online.txt"
aps_offline="/home/intelbras/mkauthapc/aps_offline.txt"
aps_contabilizados="/home/intelbras/mkauthapc/total_aps.txt"
radio=`sed -e '/6.67/!d' /home/intelbras/mkauthapc/apc.txt`

#=================== LIMPA BACKUPS ANTIGOS ==============================#
#INICIANDO O SCRIPT
echo "Aguarde!!! Localizando e Excluindo Backups Antigos."
sleep 5
DIR="/home/intelbras/mkauthapc/apc5/"
DIAS="1"
CMD="find $DIR -name "*.tgz" -ctime +$DIAS -exec rm{} \;"
ARQ="/tmp/bkp_old.log"

$CMD &> $ARQ 2> /dev/null
AUX=$(cat $ARQ | wc -l)
if [ $AUX = 0 ]; then
   echo "Nenhum backup com mais de $DIAS dia(s) para excluir!"
else
   $CMD | xargs rm -rf
   echo "Backup(s) com mais de $DIAS dia(s) de criaçao excluido(s)!"
   rm -rf $ARQ
fi

echo "Aguarde!!! Estamos Verificando se os Paineis estão Online..."
sleep 5
for apc in $(cat /home/intelbras/mkauthapc/apc.txt);do
        ping -q -c2 $apc > /dev/null

if [ $? -eq 0 ]
        then
        echo $apc "Online"
        echo $apc "Online" >>  $aps_online
else
        echo $apc "Offline"
        echo $apc "Offline" >> $aps_offline
fi
done
sleep 2
echo "Obrigado, Radios verificado com sucesso, foi gerado um arquivo com com IPs online e offline."
sleep 5
echo "Aguarde!!! Estamos acessando os Radios e gerando os Backups."
   #Aqui foi criado um if pq tinha um radio PTP com senha difrerente e nesse radio tinha mais de 50 cliente conectados.
if [ "$radio" = "172.16.6.67" ];then
        for apc in $(cat /home/intelbras/mkauthapc/apc1.txt); do
         sudo sshpass -p "$ssh1_pass" ssh -o StrictHostKeyChecking=no $apc -l $ssh1_user -p $ssh1_porta "$comando" >  /home/intelbras/mkauthapc/apc5/cfg/backup-$apc.cfg
        done
fi

        for apc in $(cat /home/intelbras/mkauthapc/apc2.txt); do
         sudo sshpass -p "$ssh_pass" ssh -o StrictHostKeyChecking=no $apc -l $ssh_user -p $ssh_porta "$comando" > /home/intelbras/mkauthapc/apc5/cfg/backup-$apc.cfg   
        done

echo "Aguarde!!! Contabilizando quantos Backups foram feitos."

find /home/intelbras/mkauthapc/apc5/cfg  -type d | \
while read line
do
    echo "$line" && ls -l "$line" | grep -v ^total | wc -l >> $aps_contabilizados
done

echo "Aguarde!!! Estamos compactando os Backups."
sleep 5
#======================== ENVIAR E-MAIL ================================#
#COMPACTANDO PARA ENVIAR POR E-MAIL
dia="`date +%d-%m-%Y`"
cd /home/intelbras/mkauthapc/apc5/
tar -zcvf backup-apc-$dia.tgz cfg

echo "Backups Compactados."
sleep 5
#ANEXANDO BACKUP
arq_tgz="`find /home/intelbras/mkauthapc/apc5 -mtime -1 -name '*.tgz'`"
anexo="$arq_tgz"
#ANEXA ASSUNTO E MENSAGEM
assunto="Backup dos Radios APC5+ `date +%d/%m/%Y`"
mensagem="Segue em anexo os Backup dos Radios APC5+.... Backups gerado e enviado automaticamente pelo Serv$
#========================================================================#
#ENVIANDO E-MAIL
echo "Enviando E-mail com Backups e logs..."
sendEmail -f $de -t $para -u "$assunto" -m "$mensagem" -a $anexo $aps_online $aps_offline $aps_contabilizados -s $smtp:$porta -xu $user -xp $senha
#========================================================================#

Scripts recomendados

Backup de Máquina Virtual - XenServer

Backup utilizando rsync com envio do log e informativo via e-mail

Backup do PostgreSQL 8.3 e aviso por e-mail

Script de backup Zabbix

sync_local - backup/restauração local


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts