+ Responder ao Tópico



  1. #1
    Jorge
    Visitante

    Padrão Script em Shell para backup de mikrotik

    Bom dia
    Fiz um script que automatiza os backups em mikrotiks, porem para utilizalo você necessitara de um computador linux e sshpass instaldado ou criar chaves para conexão sem senha com o SSH
    O mais interesante deste script é que ele gera um arquivo TXT das configurações do mikrotik sem os endereços MACs e radio-names existentes..
    Nesse caso na queima do equipamento vc terá toda a configuração já feita bastando copiar e colar no terminal
    o sshpass pode ser baixado aqui Browse Non-interactive ssh password auth Files on SourceForge.net
    ou em derivados do debian instalados via apt-get
    para gerar o backup basta criar um arquivo com o nome mk.sh e colar o conteudo do script
    e para executar
    sh mk.sh 10.0.0.1 usuario senha


    Código :
    #!/bin/bash
     
    #Configuração das Variaveis
    ipmk=$1
    user=$2
    senha=$3
     
     
    #Inicio do script
    echo "# Backup Realizado $( date +%H:%M___%d-%m-%Y)" >> backup.txt
    echo " " >> backup.txt
    echo " " >> backup.txt
     
     
    #Extrai MACs e Radio-name das interfaces. Suporta até 9 wireless 4 ethernet
    ./sshpass -p $senha ssh $ipmk -l $user ":put [/in wi get 0 mac-address]; :put [/in wi get 1 mac-address]; :put [/in wi get 2 mac-address]; :put [/in wi get 3 mac-address];
    :put [/in wi get 4 mac-address]; :put [/in wi get 5 mac-address]; :put [/in wi get 6 mac-address]; :put [/in wi get 7 mac-address]; :put [/in eth get 0 mac-address ];
    :put [/in eth get 1 mac-address ]; :put [/in eth get 2 mac-address ]; :put [/in eth get 3 mac-address ]; :put [/in wi get 0 radio-name]; :put [/in wi get 1 radio-name];
    :put [/in wi get 2 radio-name]; :put [/in wi get 3 radio-name]; :put [/in wi get 4 radio-name]; :put [/in wi get 5 radio-name]; :put [/in wi get 6 radio-name];
    :put [/in wi get 7 radio-name]; :put [/in wi get 8 radio-name]" > mac.sh
     
     
    #Extrai configurações do mikrotik
    ./sshpass -p $senha ssh $ipmk -l $user "/interface ethernet export; /interface vlan export; /interface bridge export; /ip address export; /ip route export;
    /interface wireless export; /system identity export; /snmp export; /ip firewall export; /tool bandwidth-server export; /tool mac-server export;
    /ip neighbor discovery export; /radius export; " >> backup.txt
     
     
    #Remove caractere ^M (espaços) do arquivo mac.sh
    sed -e 's/.$//' mac.sh >mac2.sh
     
     
    #Filtra Mac Address (Aqui é retirados todos os endereços macs e wireles name das interfaces)
    for imac in $(cat mac2.sh); do
    sed -e 's/'$imac'//' backup.txt > backup1.txt
    outmac=mac-addres=$imac
    sed -e 's/'$outmac'//' backup1.txt > backup.txt
    sed -e 's/mac-address=//' backup.txt > backup1.txt
    sed -e 's/radio-name=//' backup1.txt > backup.txt
    done 
     
    #Adicionando usuarios no script
    echo "/;" >> backup.txt
    echo "/user set admin password=${senha}" >> backup.txt
    echo "####################" >> backup.txt
    echo "#----END-SCRIPT----#" >> backup.txt
    echo "####################;" >> backup.txt
     
     
    #Altera nome do backup
    mv backup.txt mk-$ipmk.txt
     
     
    #APAGA TEMPORARIOS
    rm -r backup1.txt
    rm -r mac.sh
    rm -r mac2.sh

    Se alguem tiver alguma duvida posta ai
    Última edição por sergio; 16-11-2009 às 08:56. Razão: Acertar o visual

  2. #2

    Padrão

    Olá amigo,
    Desabilita o smile no texto, assim seu código ficará melhor, eu jogue ele na tag
    Código :
    code
    :P

  3. #3

    Padrão

    vou testar para ver o q da e posto aqui ..