Sauvegarder MySql base/base
La commande de sauvegarde de mysql (mysqldump) permet de sauvegarder tout d’un coup
mysqldump -p --all-databases > save.toutes.mes.bases.sql
Mais il peut parfois être intéressant d’avoir un dump de chacune des bases afin de ne restaurer que ce qui est nécessaire. On peut le faire en spécifiant le nom de chaque base :
mysqldump -p base1 > save.base.numero1.sql
Mais c’est plus problématique si le nom des bases est ammené à changer souvent (machine de test ou mutualisée..). Voici donc un petit script qui fait des dumps base par base.
my_utilisateur="sauvegardeur" # login lecture seule pour sauvegardes mysql my_motdepasse="1234" # mot de passe lecture seule datearchive=$(date +%d-%m-%y) # date format jour-mois-annee dossierArchivage="/home/archivage" # modifier emplacement selon besoins # se deplacer : cd $dossierArchivage # lister les bases : databases=( $(mysql -u$my_utilisateur -p"$my_motdepasse" -e "show databases" | grep -v Database) ) # dump base par base et compression for database in ${databases[@]} do $(mysqldump -u$my_utilisateur -p$my_motdepasse --quick --add-locks --lock-tables --extended-insert $database > archivage-$datearchive-${database}.sql) # compresser fichiers tar czf archivage-$datearchive-${database}.sql.tgz archivage-$datearchive-${database}.sql rm archivage-$datearchive-${database}.sql done
Leave a comment