Created
February 27, 2019 12:40
-
-
Save mehdichaouch/17aba4d8eddbca315e90dc2304a4675f to your computer and use it in GitHub Desktop.
Backup all MySQL databases, compress and archive them on Amazon S3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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