Le but de ce script est de restaurer un ensemble de sauvegardes MySQL qui sont stockées au format bzip2 dans un dossier. Chaque fichier d’extension .sql.bz2 porte le nom de la base de données dans laquelle il doit être restauré : par exemple toto.sql.bz2 devra être restauré dans la base toto.
Le chemin du dossier contenant les sauvegardes est passé en paramètre au script.
- #!/bin/bash
- # myextract.sh
- # decompacte un ensemble de dumps MySQL bzippés stockées dans un répertoire
- # le chemin du répertoire est passé en paramètre du script
- # exemple: myextract.sh /chemin/du/repertoire/des_bzips
- # configuration
- # nom et mot de passe de l'utilisateur MySQL
- USER_MYSQL=toto
- PASS_MYSQL="super_secret"
- for j in `ls -1 -r $1`; do
- LA_BASE=`echo $j |sed s/.sql.bz2//`
- echo "restauration de $LA_BASE"
- # si les fichiers de dump ont étés générés avec l'option -B (création de la base),
- # enlever l'option -D $LA_BASE dans la commande suivante
- bunzip2 -c $1/$j | mysql -u$USER_MYSQL --password=$PASS_MYSQL -D $LA_BASE
- done
A lancer dans un tmux/screen si le nombre de sauvegardes (ou leur taille) est conséquent(e).
Pour la génération des sauvegardes MySQL sous forme de fichiers bzippés voir : Mydump : un petit script pour sauvegarder des bases de données au format bzip2