MySQL - Backup automático de banco de dados com data

Publicado por Adriano Santos Lima em 17/03/2015

[ Hits: 30.670 ]

 


MySQL - Backup automático de banco de dados com data



Primeiramente vamos criar um script que irá fazer um backup (dump) de sua base de dados. Use o editor de sua preferência, pico, nano, vi etc:

# pico bkp_seubanco.sh

Coloque o seguinte conteúdo nele:

#!/bin/sh
# bkp_seubanco.sh

# DATA vai imprimir a data no estio dia-mes-ano
DATA=`/bin/date +%d-%m-%Y`

# NOME armazena o nome do arquivo de backup e
# o diretorio onde o arquivo será salvo no meu caso
# /www/virtual/backup é uma pasta publica do apache,
# coloque o diretório onde quer guardar o backup.

NOME="/www/virtual/backup/seubanco-$DATA.sql"

# variaveis do MySQL
HOST="localhost"
USER="seu-usuario"
PASSWORD="sua-senha"
DATABASE="nome-do-banco"

mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE > $NOME

Depois dê permissão de execução para o arquivo, com o comando:

# chmod +x bkp_seubanco.sh

Em seguida, coloque-o para rodar no Cron:

# crontab -e

E adicione a linha:

0 2 * * * /bin/sh /home/usuario/bkp_seubanco.sh

Onde:
  • 2 :: é a hora que ele vai ser executado todos os dias, no caso acima 2:00.
  • /home/usuario :: é o diretório onde se encontra o seu script "bkp_seubanco.sh".

Quando o backup for criado, vai ser gravado algo assim: seubanco-02-03-2015.sql

Espero ter ajudado,
Adriano Santos.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

MySQL - Recuperando o usuário root excluído por meio do usuário debian-sys-maint

Buscando intervalo de datas apenas pelo dia e mês no MySQL

Chive - Alternativa ao phpMyAdmin

Recuperar senha do root do MySQL

MySQL - Como fazer backup de Triggers e Stored Procedures

  

Comentários
[1] Comentário enviado por lafer_ferreira em 17/04/2016 - 19:37h

Boas,
Segui sua dica mas o backup pelo que me parece ele nao executou do jeito que pensei, alias ele nao executa .
Gostaria que ele fizesse as 01:15 da manha de sabado e nao funcionou.
Voce poderia me ajudar ?
Grato.

crontab
‪#‎faz‬ backup automatico do banco de dados mysql apto
15 01 * * 6 /bin/sh /home/backup/bkp_apto.sh

cat bkp_apto.sh
#!/bin/sh
# bkp_apto.sh

# DATA vai imprimir a data no estio dia-mes-ano
DATA=`/bin/date +%d-%m-%Y`

# NOME armazena o nome do arquivo de backup e
# o diretorio onde o arquivo será salvo no meu caso
# /www/virtual/backup é uma pasta publica do apache,
# coloque o diretório onde quer guardar o backup.

NOME="/home/backup/apto-$DATA.sql"

# variaveis do MySQL
HOST="localhost"
USER="mane"
PASSWORD="mane1234"
DATABASE="apto"

mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE > $NOME

[2] Comentário enviado por janbastos em 09/07/2016 - 16:47h

Deu permissão de execução ao arquivo?
Existe erro quando você tenta executar seu script manualmente?
Se existe posta o erro...


[3] Comentário enviado por mastergbi em 10/07/2016 - 21:53h

Desculpa a demora pra responder, estava meio ausente do forum, talvez vc já tenha até resolvido, mais pode servir para outros, é o seguinte, primeiro temos que saber se o problema ta no script ou no cron.. tente rodar o comando:

./home/backup/bkp_apto.sh

e veja se foi criado o arquivo exemplo: apto-10-07-2016.sql, se não foi criado você tem que dar permissão ao arquivo, assim como eu indico acima (chmod +x /home/backup/bkp_apto.sh ).

Se ao rodar o comando ele criar o arquivo de backup, vá no cron e não coloque os minutos, coloque somente a hora, no caso ficaria assim:

0 1 * * * /bin/sh /home/backup/bkp_apto.sh

Veja se deu resultado.

Detalhe importantíssimo, o banco de dados e o Usuário tem que está criados no Mysql , poste a mensagem de erro se houver..


Espero ter ajudado.

[4] Comentário enviado por tgcrypt em 08/12/2016 - 15:30h

Muito obrigado pela dica! ficou 100%!

[5] Comentário enviado por sr.rodolfo em 29/01/2018 - 13:02h

Deixo aqui meus sinceros agradecimentos e uma pequena contribuição para quem assim como eu utiliza o XAMPP no Linux Ubuntu (Mais fácil de instalar e configurar que o LAMP).

Altere a linha:
mysqldump -h $HOST -u $USER -p $PASSWORD $DATABASE > $NOME

Para:
/opt/lampp/bin/mysqldump -h $HOST -u $USER -p $PASSWORD $DATABASE > $NOME



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts