Pular para o conteúdo

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

Dica publicada em Banco de Dados / MySQL
Adriano Santos Lima mastergbi
Hits: 32.602 Categoria: Banco de Dados Subcategoria: MySQL
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma dica encontrada.

mysqldump - Unknown table 'COLUMN_STATISTICS' in ... [Resolvido]

MySQL - Comandos básicos

Acelerando a velocidade de conexão das páginas do MSN-Proxy

Backup de banco de dados MySQL com mysqldump

Nova versão recomendada do MySQL

#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

Entre na sua conta para comentar.