menos de 1 minuto(s) de leitura

Post rápido mostrando como fazer o backup dos databases de um servidor MySQL em um blob storage no Azure.

O primeiro passo é desabilitar que o mysqldump solicite senha, e você deve fazer isto editando o arquivo my.cnf adicionando as seguintes linhas:

[mysqldump]
user=mysqluser
password=secret

* Substitua os valores mysqluser e secret pelo seu usuário e senha do mysql

Em seguida instale o Azure CLI:

Neste caso, como usei CentOS, estou usando o yum para realizar a instalação. Caso prefira outra distribuição como Ubuntu por exemplo, utilize o apt-get.

rmartins@lab:~$ yum install nodejs
rmartins@lab:~$ install azure-cli -g

Agora vamos criar o script bkpmysql.sh. Eu vou criá-lo em /home/user/bkpmysql/bkpmysql.sh

#!/bin/sh

mkdir /home/user/bkpmysql/backups
export BACKUP_FILE=/home/user/bkpmysql/backups/db-backup.sql.gz
export DATABASE_SCHEMA_NAME=--all-databases
export AZURE_CONTAINER=YOUR_VALUE_HERE
export AZURE_STORAGE_NAME=YOUR_VALUE_HERE
export AZURE_KEY='YOUR_VALUE_HERE'
export AZURE_BLOB_NAME=db-production-$(date +%Y%m%d%H%M%S).sql.gz

/bin/mysqldump $DATABASE_SCHEMA_NAME > temp.sql
gzip temp.sql
rm -rf $BACKUP_FILE
mv temp.sql.gz $BACKUP_FILE
azure storage blob upload --container $AZURE_CONTAINER -f $BACKUP_FILE -b $AZURE_BLOB_NAME  -a $AZURE_STORAGE_NAME -k $AZURE_KEY

Por fim vamos dar permissão de execução no script e configurá-lo no cron para rodar diariamente às 00:00:

rmartins@lab:~$ chmod 755 /home/user/bkpmysql/bkpmysql.sh
rmartins@lab:~$ (crontab -l ; echo "0 0 * * * /home/user/bkpmysql/bkpmysql.sh") | sort - | uniq - | crontab -

Deixe um comentário