Backups Automáticos para banco de dados Mysql

Necessidade de um Backup

Hoje em dia é essencial que um administrador possua alguma rotina de backup diário do seu banco de dados. A DialHost possui uma rotina de backup onde faz uma cópia de segurança diária das suas bases de dados.

Veja nossa wiki sobre Backup.

Neste documento, mostraremos como criar sua própria rotina de backup para sua base de dados Mysql e armazená-la em sua  hospedagem.

Criando sua rotina de backups

Criação do arquivo em código shell

#!/bin/bash

#Variaveis
server="localhost"                    #Servidor mysql
login="nome_do_usuario_do_mysql"     #login da base
pw="senha"                        #senha
home=/home/seu_usuario/pasta_do_backup  # local onde será salvo o backup
nome_temp="all"                          #nome do arquivo temporário mysql
bk="$HOME/backup_mysql/"                #Diretório para salvar arquivos de backup
nw=$(date "+%Y%m%d")              #Buscar pela data
nb=3                             #número de cópias do banco de dados
hs="backup"                      #nome do arquivo compactado
function backup()
{
 echo "Realizando backup do servidor mysql"
 mysqldump -u$login -p$pw -h$server --add-drop-table --quote-names --all-databases --add-drop-database > "$HOME/$hs.sql"
 echo "Compactando arquivo de backup $hs.sql.gz ..."
 gzip -f "$HOME/"$hs.sql
 if [ ! -d $bk ]; then
   mkdir $bk
 fi
 cp -f "$HOME/"$hs.sql.gz "$bk/$nw.sql.gz"

 a=0
 b=$(ls -t $bk)
 c=$nb

 for arq in $b; do
   a=$(($a+1))
   if [ "$a" -gt $c ];  then
     rm -f "$bk/$arq"
   fi
 done
}
backup

Pronto! Está feito o seu código em shell que irá realizar um backup diário da sua base de dados, armazenando sempre os últimos 3 dias.

A compactação do arquivo gerará um arquivo com a extensão .sql.gz. Para descompactá-lo poderá usar programas como Winrar, Winzip.

Poderá salvar arquivo com o código acima com seguinte nome: backup_mysql.sh – Salve ele diretamente na raíz da sua hospedagem, no mesmo nível de public_html/.

Lembre-se apenas de dar permissão 755 no arquivo a ser executado.

Atenção: O código mencionado acima é somente um exemplo. Caso haja dúvidas quanto sua utilização, sugerimos que verifique juntamente a um desenvolvedor de sua confiança.

Agendando o Cron que realizará o backup diariamente ou semanalmente

A partir dai você mesmo pode criar seu próprio agendamento utilizando a sintaxe padrão do Cron.

Veja nossa wiki sobre Como criar uma tarefa Cron Job?

Minuto: 00 
Hora: 2 
Dia do Mês: * 
Mês: * 
Dia da Semana: * 
Comando: /bin/bash /home/login_ftp/backup_mysql.sh
  • Este artigo foi útil para você?
  • Sim   Não

Tags relacionadas

backup mysql