Fazendo backup do seu MySQL com API do Dropbox

Pessoal, hoje eu vou mostrar para vocês como criar uma rotina de backup do seu MySQL, utilizando o shell como script de backup e a API do Dropbox como forma de armazenamento dos dados.

[ Hits: 13.112 ]

Por: Allan Moraes em 08/12/2015


Agendamento e log



Após a configuração do script, basta adicionar uma rotina no cron. Para quem não conhece, o cron é um sistema de agendamento de tarefas do Linux. É nele que você configurará as rotinas do backup ou execução de algum script shell, perl, python, php etc. Sua utilização e sintaxe são bem simples, fáceis de decorar e usar.

# crontab -e

Sintaxe do cron:

    * * * * * /usr/local/bin/MySQL-Backup/Backup_MySQL.sh
    | | | | | |
    | | | | | +----- Comando a ser executado
    | | | | +------- Dia da semana (0 - 7) (0 ou 8 é domingo)
    | | | +--------- Mês (1 - 12)
    | | +----------- Dia do mês (1 - 31)
    | +------------- Hora (0 - 23)
    +--------------- Minuto (0 - 59)

Com o comando crontab -e você abrirá o terminal de edição, basta apertar "insert" ou "i", inserir a rotina desejada, salvar o arquivo apertando "ESC" ":wq!" (igual ao vi ou vim) e reiniciar o serviço com o systemctl restart crond.

00 01 * * * /usr/local/bin/MySQL-Backup/Backup_MySQL.sh

Fique atento aos logs do MySQL-Backup que estão armazenados em /var/log/mysql-backup.log.

Caso queira ter um controle destes logs, para que não ocupem espaço em disco sem necessidade, você pode utilizar o logrotate. O logrotate é uma ferramenta que faz o rotacionamento de logs no Linux. Com ele você consegue limitar o tamanho dos logs, manter logs por dias específicos, compactar e outras diversas opções. Para efetuar esta configuração, edite o arquivo /etc/logrotate.conf e adicione no final do arquivo.

    /var/log/mysql-backup.log {
            daily                   #Cria um log por dia
            create 0600 root root   #Permissão do arquivo de log
            rotate 4                #Quantos logs antigos serão mantidos
    }

É isso pessoal! Espero ter ajudado e até o próximo artigo.

Página anterior    

Páginas do artigo
   1. Configurando o ambiente
   2. Criando o APP no Dropbox
   3. Os scripts
   4. Agendamento e log
Outros artigos deste autor

Blindando o MySQL: Configurações de segurança

Leitura recomendada

Configurando OpenSSH no Windows Server 2003 para autenticação por chave (sem senha)

gGedit como IDE para COBOL

Coloque ordem em seus programas

Processos

Solução para provedores - Receber aviso no celular quando ocorrer perda de pacote, hosts parados ou pacotes duplicados

  
Comentários
[1] Comentário enviado por fabio em 08/12/2015 - 14:01h

Não conhecia o Dropbox-Uploader, ele me será muito útil! Show.

[2] Comentário enviado por MySQLBox em 08/12/2015 - 14:19h


[1] Comentário enviado por fabio em 08/12/2015 - 14:01h

Não conhecia o Dropbox-Uploader, ele me será muito útil! Show.


Que bom Fabio! Na dúvida é só me chamar...

[3] Comentário enviado por dipsystem em 13/07/2016 - 00:31h

ola amigo tenho uma duvida seria possível me ajudar? quando verifico os logs me reporta a seguente mensagem

Wed Jul 13 00:07:01 BRT 2016 - Fazendo backup do banco information_schema
mysqldump: Got error: 1044: Access denied for user 'backup'@'localhost' to database 'information_schema' when using LOCK TABLES
Wed Jul 13 00:07:01 BRT 2016 - Fazendo backup do banco dipaddress
Wed Jul 13 00:07:01 BRT 2016 - Fazendo backup do banco dipsystem
Wed Jul 13 00:07:02 BRT 2016 - Fazendo backup do banco mysql
-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
Wed Jul 13 00:07:02 BRT 2016 - Fazendo backup do banco performance_schema
mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user 'backup'@'localhost' for table 'cond_instances' when using LOCK TABLES
Wed Jul 13 00:07:02 BRT 2016 - Fazendo backup do banco phpmyadmin
Wed Jul 13 00:07:02 BRT 2016 - Fazendo backup do banco tracker
mysqldump: Got error: 1449: The user specified as a definer ('anderson'@'%') does not exist when using LOCK TABLES
Wed Jul 13 00:07:02 BRT 2016 - Fazendo backup do banco tracker_novo
Dropbox Uploader v0.16
Andrea Fabrizi - andrea.fabrizi@gmail.com

Usage: /usr/local/bin/Dropbox-Uploader/dropbox_uploader.sh COMMAND [PARAMETERS]...

Commands:
upload <LOCAL_FILE/DIR ...> <REMOTE_FILE/DIR>
download <REMOTE_FILE/DIR> [LOCAL_FILE/DIR]
delete <REMOTE_FILE/DIR>
move <REMOTE_FILE/DIR> <REMOTE_FILE/DIR>
copy <REMOTE_FILE/DIR> <REMOTE_FILE/DIR>
mkdir <REMOTE_DIR>
list [REMOTE_DIR]
share <REMOTE_FILE>
saveurl <URL> <REMOTE_DIR>
info
unlink

Optional parameters:
-f <FILENAME> Load the configuration file from a specific file
-s Skip already existing files when download/upload. Default: Overwrite
-d Enable DEBUG mode
-q Quiet mode. Don't show messages
-p Show cURL progress meter
-k Doesn't check for SSL certificates (insecure)

For more info and examples, please see the README file.


porem não consigo encontrar as tabelas na pasta aonde seria o repositório dos backups e nem na minha pagina do dropbox aonde o banco deveria ser importado estou erando alguma coisa ?? aguardo sua ajuda amigo con satisfação muito obrigado...

[4] Comentário enviado por MySQLBox em 13/07/2016 - 13:33h


[3] Comentário enviado por dipsystem em 13/07/2016 - 00:31h

ola amigo tenho uma duvida seria possível me ajudar? quando verifico os logs me reporta a seguente mensagem

Wed Jul 13 00:07:01 BRT 2016 - Fazendo backup do banco information_schema
mysqldump: Got error: 1044: Access denied for user 'backup'@'localhost' to database 'information_schema' when using LOCK TABLES
Wed Jul 13 00:07:01 BRT 2016 - Fazendo backup do banco dipaddress
Wed Jul 13 00:07:01 BRT 2016 - Fazendo backup do banco dipsystem
Wed Jul 13 00:07:02 BRT 2016 - Fazendo backup do banco mysql
-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
Wed Jul 13 00:07:02 BRT 2016 - Fazendo backup do banco performance_schema
mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user 'backup'@'localhost' for table 'cond_instances' when using LOCK TABLES
Wed Jul 13 00:07:02 BRT 2016 - Fazendo backup do banco phpmyadmin
Wed Jul 13 00:07:02 BRT 2016 - Fazendo backup do banco tracker
mysqldump: Got error: 1449: The user specified as a definer ('anderson'@'%') does not exist when using LOCK TABLES
Wed Jul 13 00:07:02 BRT 2016 - Fazendo backup do banco tracker_novo
Dropbox Uploader v0.16
Andrea Fabrizi - andrea.fabrizi@gmail.com

Usage: /usr/local/bin/Dropbox-Uploader/dropbox_uploader.sh COMMAND [PARAMETERS]...

Commands:
upload &lt;LOCAL_FILE/DIR ...&gt; &lt;REMOTE_FILE/DIR&gt;
download &lt;REMOTE_FILE/DIR&gt; [LOCAL_FILE/DIR]
delete &lt;REMOTE_FILE/DIR&gt;
move &lt;REMOTE_FILE/DIR&gt; &lt;REMOTE_FILE/DIR&gt;
copy &lt;REMOTE_FILE/DIR&gt; &lt;REMOTE_FILE/DIR&gt;
mkdir &lt;REMOTE_DIR&gt;
list [REMOTE_DIR]
share &lt;REMOTE_FILE&gt;
saveurl &lt;URL&gt; &lt;REMOTE_DIR&gt;
info
unlink

Optional parameters:
-f &lt;FILENAME&gt; Load the configuration file from a specific file
-s Skip already existing files when download/upload. Default: Overwrite
-d Enable DEBUG mode
-q Quiet mode. Don't show messages
-p Show cURL progress meter
-k Doesn't check for SSL certificates (insecure)

For more info and examples, please see the README file.


porem não consigo encontrar as tabelas na pasta aonde seria o repositório dos backups e nem na minha pagina do dropbox aonde o banco deveria ser importado estou erando alguma coisa ?? aguardo sua ajuda amigo con satisfação muito obrigado...


Amigo, de uma olhada nas permissões que o usuário possui: SHOW GRANTS FOR backup@localhost \G
Qual a versão do teu MySQL?

[5] Comentário enviado por dipsystem em 13/07/2016 - 20:23h

oi amigo obrigado por responder...

estou usando o ubuntu 12.04 com o mysql 5.5.46-0ubuntu0.12.04.2
sobre as permissões eu atribui todas... poderia me ajudar pelo whats - 54 81341096

agradeceria muito meu amigo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts