Automação de backup de switch

automação de backup de switch
automação de backup de switch

Automação de backup de switch em 1 minuto

Fazer a automação de backup de switch foi uma de minhas prioridades quando trabalhei na Catho. Detesto fazer tarefas rotineiras quando essa tarefa pode ser feita por robôs, então decidi fazer um pequeno conjunto de automação para me livrar da tarefa e poder assim fazer coisas mais divertidas. Fiz o conjunto de backup para switches summit e para switches Dell, porque o processo para cada um era um pouco diferente, mas valia muito a pena o trabalho, que como você pode ver, não é tanto; ou melhor, quase nenhum.
Para quem não conhece, switches Summit x650 são switches de borda de rede, custando em torno de R$ 45.000,00 cada, o que no primeiro momento já me gerou um orgulho, afinal, custa o preço de um carro. Depois dessa tarefa, pude me dedicar a fazer stacking dele, mas acho que essa tarefa foi tão rápida quanto os scripts, com a diferença que o backup era diário.
Hoje encontrei os scripts python e shell script para a tarefa de coleta e gerenciamento de backup. Gostei de fazer esse robô pelo fato de estar tratando com outro tipo de hardware que não x86. Antes do código, vale lembrar que o python trabalha conforme a indentação, então por favor, verifique o código antes de rodá-lo.
Dei-lhe o nome de ‘Telget’, por fazer ‘get’ através da telnetlib, lendo o stdout.

#!/usr/bin/env python
import sys, telnetlib

try: host = sys.argv[1]
    except IndexError: print "Uso: %s IP" % sys.argv[0]
    print "Ex.: %s 200.201.202.203" % sys.argv[0]
    sys.exit()

#Fulano, Ciclano
user = 'admin'
password = '123Senha321'
tn = telnetlib.Telnet(host)
tn.read_until('login: ')
tn.write(user)
print "usuario:.........[PASS]"
tn.read_until('password: ')
tn.write(password)
print "password:........[PASS]"
tn.read_until('# ') #scan for prompt
tn.write('disable clipagingnshow configurationn')
d = tn.read_until('fulano.3 # ')
tn.close()

try:
    insere=open(sys.argv[2],"w")
    insere.write(d)
    except: print "Uso: %s IP NOME_DO_ARQUIVO" % sys.argv[0]
    print "Ex.: %s 200.201.202.203" % sys.argv[0]
    sys.exit()

print "Finalizado com sucesso."

O script shell que faz o rotate dos backups:

#!/bin/bash
DIA=`date '+%d'|sed -e 's/^0//'`
MES=`date '+%m'`
DATA="$DIA-$MES"
INICIO=`date`

#Faz o backup dos switches especificados na sequencia
#Nao tem verificacao nessa etapa
# baixa a saida para arquivo
gera_bkp(){
    for i in `ls -l /root/telget/*.telget|awk '{print $NF}'|sed -e 's/.telget//g; s//root/telget///g'`;
    do
        echo " "
        NOME="$i-$DATA.bkp"
        echo $NOME
        /root/telget/$i.telget $i $NOME
        sed -e '1,4 d;$ d' $NOME >/stage/switches/$NOME
        rm -f /root/telget/$NOME
    done
}

#Apos o bkp, os arquivos com mais de 7 dias de vida sao removidos
#Ha uma verificacao para saber se a variavel esta vazia. Isso eh para evitar um "rm -f //"
#Se a variavel estiver vazia, o script sai. Talvez a melhor posicao para remocao seja apos o mail
remove_antigos(){
    find /stage/switches/ -maxdepth 1 -daystart -atime +6 -exec rm -f {} ;
}

#Envia mail do termino do bkp. O inicio precede as funcoes. O horario final eh coletado nessa funcao
#O diretorio eh medido e o numero de arquivos contados
#O titulo tambem estah definido dentro dessa funcao
envia_mail(){
    FIM=`date`
    TAMANHO=`du -sh /stage/switches`
    NUM_ARQUIVOS=`ls -l /stage/switches/*.bkp|wc -l`
    TITULO=".::_Backup_dos_Switches_::."
    echo "Backup de switches Gerado (Summit).
    INICIO:$INICIO
    FIM:$FIM
    Tamanho de diretorio: $TAMANHO
    Numero de arquivos: $NUM_ARQUIVOS" >/tmp/bkp_sw.txt
    cat /tmp/bkp_sw.txt | mail -s $TITULO admin@seuDominio.com.br
}

echo "Gerando BKP:"
gera_bkp
echo " "
echo "Geracao de BKP........................[OK]"
remove_antigos
echo "Remocao dos antigos BKPs..............[OK]"
envia_mail
echo "Envio de email........................[OK]"

Simples e objetivo, “desescravizando” o profissional de redes, graças a 2 simples scripts que permitiram a automação de backup de switch com esforço 0. Gostou?

Uma leitura que considero agradável é sobre um tunning que tive que fazer em um sistema certa vez. Se está com alguns minutos livre, recomendo.

Inscreva-se no nosso newsletter, ali em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!

Agregador de Links - Loucuras da Net

Revisão: Ricardo Amaral de Andrade

Djames Suhanko

Sobre o autor: Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

3 thoughts on “Automação de backup de switch

Deixe uma resposta