Myextract : un script pour restaurer un ensemble de dumps MySQL

But du script : restaurer un ensemble de dumps MySQL bzippés et stockés dans un répertoire en une seule opération (utilitaire pour migration de serveur).

, par clem

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.

  1. #!/bin/bash
  2.  
  3. # myextract.sh
  4. # decompacte un ensemble de dumps MySQL bzippés stockées dans un répertoire
  5. # le chemin du répertoire est passé en paramètre du script
  6. # exemple: myextract.sh /chemin/du/repertoire/des_bzips
  7.  
  8. # configuration
  9. #   nom et mot de passe de l'utilisateur MySQL
  10. USER_MYSQL=toto
  11. PASS_MYSQL="super_secret"
  12.  
  13. for j in `ls -1 -r $1`; do
  14.   LA_BASE=`echo $j |sed s/.sql.bz2//`
  15.   echo "restauration de $LA_BASE"
  16.  
  17. # si les fichiers de dump ont étés générés avec l'option -B (création de la base),
  18. # enlever l'option -D $LA_BASE dans la commande suivante
  19.   bunzip2 -c $1/$j | mysql -u$USER_MYSQL --password=$PASS_MYSQL -D $LA_BASE
  20. done

Télécharger

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