Criando backups de forma simples e enviando para o Telegram ou servidor via SSH


Vamos aprender a criar scripts simples para fazer backups que podem ser úteis no nosso dia dia, vamos enviar eles para um servidor ou no telegram que aceita arquivos de até 2Gb #chupawhatsapp

Criando Bot no telegram

Abra o Telegram e procure por @BotFather.
Inicie a conversa com ele.

– Digite o comando /newbot para iniciar a criação de um novo bot.
– Após o comando você vai dar um nome para seu bot. Ex.: “Bot Legal RR”.
– Em seguida é necessário digitar o nome de usuário para o bot, sendo obrigatório terminar com bot. Ex.: “legallrr_bot”.
– Ao finalizar você receber informações com seu TOKEN, que vamos utilizar em seguida.

Neste exemplo nosso token para acessar a API HTTP ficou:
757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0

Procure pelo seu bot e comece uma conversa com ele e envie uma mensagem de teste para o mesmo, pois vamos precisar descobrir o ID do seu usuário, para que ele possa lhe enviar as mensagens.

Abra em seu seu navegador a seguinte URL https://api.telegram.org/botTOKEN/getUpdates para descobrir o ID do usuário que enviou a mensagem ou de um grupo.
Ex.: https://api.telegram.org/bot757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0/getUpdates

:: Chat privado ::

ID do chat privado: 999999999

Se desejar criar um grupo também, basta adicionar seu bot a ele, após adiciona-lo envia uma mensagem como /teste para que possamos coletar o ID do grupo.

:: Chat em Grupo ::

ID do chat grupo: -1000000000000

Agora que já temos o Token e o ID do chat/grupo vamos ao script de backup. Se ainda estiver com dificuldade no vídeo onde ensino integrar com o zabbix aos 52 min explico como criar o bot.

Não esqueça q para o bot enviar algo para você é necessários iniciar uma conversa com o mesmo.
Antes faça um teste abrindo no seu navegador https://api.telegram.org/botTOKEN/sendMessage?chat_id=ID&text=Mensagem ou diretamente pelo terminal com curl.

Ex.: Enviando mensagem para um usuário

Ex.: Enviando mensagem para um grupo (Não torne o grupo público para sua segurança)

Se as mensagens chegaram estamos preparados para fazer nossos backups com o telegram.


Scripts

Pacotes requeridos:

Para ficar algo organizado vou criar uma pasta onde colocarei todos os scripts

Como normalmente eu uso o telegram mesmo que seja apenas para notificar que um backup foi feto, vou criar uma pasta chamada para fazer toda a configuração do bot nela, criei um novo script com base no código que utilizei no tutorial do Fastnetmon, assim toda vez que for chamar telegram para enviar mensagem ou arquivo basta executa-lo sem sofrimero e varias linhas. Bora prepara-ló!

Preparando o script do telegram (bot)

Alterando o TOKEN:

Altere o TOKEN e o formato da compactação (zip ou tar)
Altere o token:

Escolha o metodo de compactação tar/zip

Como usar?

-m: Para enviar uma mensagem

-f: Para enviar um arquivo

Faça seu testes! Vale lembrar que toda vez que o script do telegram envia um arquivo ele irá compactar e remover este arquivo do servidor após envio.

Preparando o script para envido do backup via SSH

Como usar?
Ex.:


Backups Telegram


♥ Backup de um diretório

Vamos imaginar que gostaríamos de salvar o diretório /etc/frr/*

Adicionaremos apenas o ID usuário ou grupo (lembre-se que grupo sempre tem um “-” antes do ID) ex:

De permissão para execução:

Basta rodar agora o script

Já já vamos ver como adiciona-lo no CRON (Agenda) para tornar isso automático.


♥ Backup de múltiplos diretórios

Vamos imaginar que gostaríamos de salvar todos os diretórios do bind9, para isso basta adicionar todos os diretórios/arquivos entre aspas “/etc/bind/* /usr/share/dns/* /var/cache/bind/*”

Altere o ID usuário/grupo (lembre-se que grupo sempre tem um “-” antes do ID) ex:

De permissão para execução:

Basta rodar agora o script


♥ Backup de um banco de dados Mysql/MariaDB

Neste exemplo vamos fazer backup do banco de dados “radius”. Altere as variáveis informando usuário/senha do seu banco de dados bem como nome do banco e ID do telegram.


♥ Backup de “todos” os banco de dados Mysql/MariaDB

Neste exemplo vamos fazer backup de “todos” os bancos de dados do servidor.
Perceba que o comando:

Listará todas as bases, porém o com “grep -v” ignoro alguns bancos que não acho necessário.

Altere as variáveis informando usuário/senha do seu banco de dados bem como ID do telegram.


♥ Backup do Zabbix-Server (Apenas do que interessa)

Para o backup do zabbix utilizo um script do maxhq que faz um dump apenas da parte da base que nos interessa, isso significa que você não terá salvo o historio das “coisa”! Porém realizei um fork do projeto qual fiz alguns ajustes para dar suporte ao zabbix 5.
Vamos baixa-lo em nosso diretório:

Crie seu script

Permissões:

Execute:


Backups SSH


Neste caso tenho o um servidor que irá receber nossos backups, sendo:


♥ Backup de um diretório

Vamos fazer o mesmo backup que fizemos anterior do “/etc/frr/*”.

Permissão:

Execute:


♥ Backup de múltiplos diretórios

Ex backup DNS bind9

Permissão:

Execute:


♥ Backup de um banco de dados Mysql/MariaDB

Permissão:

Execute:


♥ Backup de “todos” os banco de dados Mysql/MariaDB

Permissão:

Execute:


♥ Backup do Zabbix-Server (Apenas do que interessa)

Para o backup do zabbix utilizo um script do maxhq que faz um dump apenas da parte da base que nos interessa, isso significa que você não terá salvo o historio das “coisa”! Porém realizei um fork do projeto qual fiz alguns ajustes para dar suporte ao zabbix 5.
Vamos baixa-lo em nosso diretório:

Crie seu script

Permissões:

Execute:


Bom com base nesses scripts e um pouco de imaginação acredito que você vai conseguir fazer muita coisa, mas como automatizar? Veremos isso agora!

Agendando o backup (Cron)

Vamos agendar nosso(s) scripts para serem feitos em algumas situações:

Execute o comando crontab -e.

A primeira vez que você rodar o comando será solicitado qual editor você deseja, vou selecionar o nano “1” (ou apenas de Enter) por ser o mais fácil. Vale a leitura também: Agendamento CRON / CRONTAB e CronHowto

Você precisa entender a ordem dos valores interpretado pelo cron:

Alguns exemplos

Executar um backup todos os dias às 20h e 30min:

Todo dia primeiro do mês às 00h e 45min:

Toda segunda-feira às 04h:

Curtiu o conteúdo? Quer me ajudar? 🙂

Participe do canal no telegram para ficar atualizado sempre que publicar um novo tutorial.

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Abraço!

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

6 Resultados

  1. CLAUDIO CABRAL disse:

    remontti fiz de tudo e sempre dando Erro ao compactar arquivo

  2. Leonardo Paixão disse:

    Boa noite Remontti!

    É possível fazer o backup dos Mikrotiks? Já tentou enviar o backup para Telegram?

  3. Lucas disse:

    Boa tarde, como faria o restore do banco de dados do zabbix a partir do arquivo gerado pelo backup?

  4. Rodrigo disse:

    Boa tarde, no script de backup onde esta “zip ${ARQUIVO} $5 &>/dev/null” e “tar -czpf ${ARQUIVO} $5 &>/dev/null” não seria $2 ?

  1. 24 de agosto de 2020

    […] Não esqueça de colocar o diretório em suas políticas de backups: /var/lib/krill/. Uma dica é o tutorial: Criando backups de forma simples e enviando para o Telegram ou servidor via SSH […]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *