Backup do MySQL para Amazon S3

Integração tem sempre aquele porém. Será que preciso comprar um software que resolva os problemas ou seja que conseguimos propor uma solução mais barata que atenda?

Com isso em mente, decidi me aventurar pelas APIs e clientes da Amazon para construir algo que não aumentasse o preço que o cliente já paga. Ora, se a proposta, da Amazon é “pague somente pelo que usar”, quem sou para contrariar.

Em instâncias servidoras da Amazon (EC2), adaptei minhas próprias soluções para não ter que pagar por outros softwares.

Na solução para windows, implementei em C# usando a biblioteca AWS.NET. Para linux, instalei o AWS-CLI e configurei as chaves de segurança (IAM). A partir daí criei o script abaixo para realizar o backup. Se quiser, pode ainda configurar a custódia dos backups no próprio S3 que ele expurga automaticamente.

#!/bin/bash
##########################################
# Backup database MySQL enviando para o S3
# Criado por Andre Mesquita
##########################################

#VARIAVEIS
DATAHORA=`date +%Y%m%d-%H%M`
FILESDIR=’cd /sites/tmp’
TAR=/bin/tar
RM=/bin/rm

IPBANCO=”127.0.0.1″
USERBANCO=’seu usuario’
SENHABANCO=’sua senha’
NOMEDOBANCO=’nome do database’
NOMEDOBUCKET=’meusbackups’

#Entrando no diretorio de backup
$FILESDIR

#Executa o backup do banco de dados
echo ‘Realizando o backup do banco de dados…’
mysqldump –host=$IPBANCO –user=$USERBANCO –password=$SENHABANCO –databases $NOMEDOBANCO > ./backup_$NOMEDOBANCO.sql

#Compactando o backup
echo ‘Compactando arquivos do site…’
$TAR zcf $NOMEDOBANCO_database.bkp_$DATAHORA.tar.gz ./backup_$NOMEDOBANCO.sql

echo ‘Enviando para o respositorio de backups…’
aws s3 cp ./$NOMEDOBANCO_database.bkp_$DATAHORA.tar.gz s3://$NOMEDOBUCKET/$NOMEDOBANCO_database.bkp_$DATAHORA.tar.gz

echo ‘Excluindo o script descompactado…’
$RM $NOMEDOBANCO_database.bkp_$DATAHORA.tar.gz
$RM backup_$NOMEDOBANCO.sql

echo ‘ ‘
echo ‘ Operacao finalizada. ‘
echo ‘ ‘

Pronto! Espero que ajude.

Precisando de algo customizado, consulte-nos!

Grande abraço e até a próxima!

Etiquetas: , , , , , , ,

Leave a Reply