Tópicos
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 local login="nome_do_usuario_do_mysql" # Login do Usuário que será o agente de backup pw="senha" # Senha do Usuário do agente de backup
dbs="usuario_base1 usuario_base2 usuario base3" # Adicionar as bases para o backuphome=/home/seu_usuario/pasta_do_backup # Diretorio 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 a armazenar dos bancos 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 --databases $dbs --add-drop-database > "$HOME/$hs.sql" 2>&1 | grep -vi "Warning: Using a password" 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.
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