+ Responder ao Tópico



  1. #1

    Lightbulb Problema com script para backup de equipamentos Ubiquiti (Problema em agendar)

    Iae galera do under-linux,

    Venho compartilhar um script que fiz para resolver o problema de backups em equipamentos da ubiquiti (Nano, Airgrid, rocket, etc). Quando executo o script manualmente, ele funciona perfeitamente (não gera nenhum erro na tela e nada do tipo). Ele lê uma determinada lista, acessa os equipamentos via ssh e realiza um cat no arquivo "/var/tmp/system.cfg" redirecionando a saída do comando para um arquivo no servidor. A parte tensa é que quando agendo ele no Cron para que ele seja executado uma vez por semana, ELE NÃO EXECUTA 100%. Pensei que fosse algo no cron e tal, porém quando agendo ele no at funciona perfeitamente, já no cron ele chega a executar a primeira linha do código, porém não executando o restante do script. Segue abaixo o script;


    #!/bin/bash

    #log da hora que o backup ira iniciar (QUANDO AGENDO NO CRON, ELE EXECUTA APENAS ESTA LINHA DO SCRIPT)

    export INICIO=$(date +%d-%m-%Y_%H:%M:%S)
    echo -e "Backup iniciado as $INICIO" >> /var/log/log_backups_airmax.log

    #Acessa equipamento com base na lista de ips e executa o backup

    for i in $(cat lista_para_backup.txt); do
    sshpass -p senhadosequipamentos ssh $i -l admin -o StrictHostKeyChecking=no \
    "cat /tmp/system.cfg" > backups/ip-$i-backup-$(date +%d-%m-%Y).cfg 2> /dev/null \
    && export FIM=$(date +%d-%m-%Y_%H:%M:%S); echo -e "O backup de $i foi efetuado com sucesso em $FIM" >> /var/log/log_backups.log
    done


    Espero que esta dica seja útil para toda a galera que utiliza equipamentos ubiquiti.

    Abraços.

  2. #2

    Padrão Re: Problema com script para backup de equipamentos Ubiquiti (Problema em agendar)

    Em vez de vc da um cat e redirecionar a saida dele pra um arquivo, faz o download dele:
    sshpass -p senhadosequipamentos sftp usuario@o_ip_do_equipamento:/caminhodoarquivo.

    Outra dica bacana eh vc criar um arquivo com os ips dos equipamentos, ai vc faz um for para ler o arquivo e executar os bkps
    Ex: for i in cat /home/user/ips; do

    sshpass -p senhadosequipamentos sftp usuario@$i:/caminhodoarquivo
    done

  3. #3

    Lightbulb Re: Problema com script para backup de equipamentos Ubiquiti (Problema em agendar)

    Obrigado pela dica radar02123, não tinha pensado em fazer o download do arquivo. Vou tentar e posto.

    Sobre o for já havia implantado no script.

  4. #4

    Padrão Re: Problema com script para backup de equipamentos Ubiquiti (Problema em agendar)

    Opa amigos! não tenho muito conhecimento na parte dos script para UBNT, poderiam me indicar material para estudo. Aproveitando como faria para ter um otimo gerenciamento de todos equipamentos UBNT no AirControl, gerando gráficos de trafego de cada DISPOSITIVO conectado na rede, poderia por exemplo coletar dados " sobre qualidade do sinal do cliente" de cada cliente. Por no manual do aircontrol da para entender que isso é possivel, mas como fazer?

  5. #5

    Unhappy Re: Problema com script para backup de equipamentos Ubiquiti (Problema em agendar)

    olá biohazzard,


    Na verdade estes scripts são para Linux, mas alguns funcionam perfeitamente em equipamento ubiquiti. A muito material sobre programação em shell script na internet. Segue um site com uma apostila bem interessante.

    http://www.apostilaspdf.com/apostila...ramacao-shell/

    Sobre meu problema ...

    Radar02123
    Tentei fazer o script como vc falou, porém o problema continuou, ele executa a primeira rotina e não chega a acessar e realizar o download do arquivo (tanto pelo sftp e pelo scp). Ai pensei, quando eu agendo pelo AT o script executa de boa, vou criar um script contendo os comandos necessários para agendar o script de backup no AT e agendar este script no cron para que seja executado semanalmente. Na teoria ia funciona perfeitamente, mas na pratica aconteceu mesma coisa.

    Estou sem ideias para resolver este problema.

  6. #6

    Padrão Re: Problema com script para backup de equipamentos Ubiquiti (Problema em agendar)

    Posta ai a configuração do cron.

  7. #7

    Unhappy Re: Problema com script para backup de equipamentos Ubiquiti (Problema em agendar)

    Segue abaixo o conteúdo do arquivo /etc/crontab

    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

    # m h dom mon dow user command
    17 * * * * root cd / && run-parts --report /etc/cron.hourly
    25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
    47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
    52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

    #Teste agendamento (agendei desta forma para realizar alguns testes)
    07 * * * * root /bin/bash /root/backup_equipamentos_ubiquiti/ubiquiti-backup

    O agendamento em si está normal. Com alguns testes verifiquei que o script quando agendado não chega a executar o for na lista de ip, tanto que se eu tirar o for e colocar as linhas para backup com os ips, o agendamento funciona normalmente. Pior é que o for funciona perfeitamente quando o script é executado manualmente.

  8. #8

    Padrão Re: Problema com script para backup de equipamentos Ubiquiti (Problema em agendar)

    Tente mudar o cabeçario do "for". Ex:
    for i in `cat /home/user/lista_para_backup.txt`; do
    <comandos>...
    done

  9. #9

    Padrão Re: Problema com script para backup de equipamentos Ubiquiti (Problema em agendar)

    radar02123

    Realizei estas alterações no script mas o problema continuou. Vou subir o script em outro server, com uma versão mais atualizada do cron para ver se resolve, pq vish este negocio ta muito tenso!

  10. #10

    Talking Re: Problema com script para backup de equipamentos Ubiquiti (Problema em agendar)

    Galera,

    Consegui resolver o problema com uma solução muito simples.

    na linha;

    sshpass -p vantemonitor ssh $i -l admin -o StrictHostKeyChecking=no "cat /tmp/system.cfg" > /backups/ip-$i-backup-`date +%d-%m-%Y_%H:%M`.cfg 2> /dev/null && export FIM=`date +%d-%m-%Y_%H:%M:%S`; echo -e "O backup de $i foi efetuado com sucesso em $FIM" >> /var/log/log_backups_airmax.log


    Mudei e coloquei o caminho completo da pasta onde o script ia gerar o backup. Após isso, funcionou perfeitamente o agendamento pelo cron.


    Obrigado pela a ajuda.
    Abraços