Skip to content

Instantly share code, notes, and snippets.

@mehdichaouch
Created February 27, 2019 12:40
Show Gist options
  • Save mehdichaouch/17aba4d8eddbca315e90dc2304a4675f to your computer and use it in GitHub Desktop.
Save mehdichaouch/17aba4d8eddbca315e90dc2304a4675f to your computer and use it in GitHub Desktop.
Backup all MySQL databases, compress and archive them on Amazon S3
#!/bin/sh
# http://www.geek-directeur-technique.com/2017/07/17/utilisation-de-mysqldump
# configuration de l'utilisateur MySQL et de son mot de passe
DB_USER="utilisateur"
DB_PASS="mot_de_passe"
# configuration de la machine hébergeant le serveur MySQL
DB_HOST="localhost"
# configuration du bucket Amazon S3
AWS_BUCKET="mon_bucket"
# sous-chemin de destination
OUTDIR=`date +%Y-%m-%d/%H:%M:%S`
# création de l'arborescence
mkdir -p /var/archives/$OUTDIR
# récupération de la liste des bases
DATABASES=`MYSQL_PWD=$DB_PASS mysql -u $DB_USER -e "SHOW DATABASES;" | tr -d "| " | grep -v -e Database -e _schema -e mysql`
# boucle sur les bases pour les dumper
for DB_NAME in $DATABASES; do
MYSQL_PWD=$DB_PASS mysqldump -u $DB_USER --single-transaction --skip-lock-tables $DB_NAME -h $DB_HOST > /var/archives/$OUTDIR/$DB_NAME.sql
done
# boucle sur les bases pour compresser les fichiers
for DB_NAME in $DATABASES; do
gzip /var/archives/$OUTDIR/$DB_NAME.sql
done
# archivage sur Amazon S3
aws s3 sync /var/archives/$OUTDIR s3://$AWS_BUCKET/$OUTDIR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment