automação de backup de switch

switch summit
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 = 'adminr'
password = '123Senha321r'
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, alí 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