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: 12.528 ]

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

Backup em HDs da rede

Convertendo TXT ou HTML em OGG

Criando uma ISO bootável do OpenBSD

Automatizando a conexão com Internet via ADSL com PPPoE no OpenBSD

Fazendo o bash contar piadas

  
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