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

Publicado por Adriano Santos Lima em 17/03/2015

[ Hits: 30.669 ]

 


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

Liberar 3306 do MySQL no Slackware

XAMPP para Ubuntu 10

Resolver problema "Got error 127 from table handler" no MySQL

Exportando dados do MySQL para arquivos textos

Recuperando a senha do root de seu MySQL

  

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