Bonsoir,

petite optimisation rapide de ta boucle for, gain de temps et d'espace disque :

for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL | gzip | ssh $utilisateur_dist...@$serveur_dest "cat >$DOSSIER_DEST/$PREFIX$i.sql.gz"
done

Et une autre optimisation pour backupper en // (à tester j'ai écris comme ça) :

NB_CORES=$( grep processor /proc/cpuinfo | wc -l )
for db in $( mysql -uadmin -p$MOT_DE_PASSE_SQL -e "show databases" ); do
mysql -ABN -uadmin -p$MOT_DE_PASSE_SQL -e "SELECT TABLE_NAME FROM TABLES WHERE TABLE_SCHEMA='$db'" information_schema | xargs -n1 -P$NB_CORES -I{} sh -c "mysqldump -uadmin -p$MOT_DE_PASSE_SQL $db {} | gzip | ssh $utilisateur_dist...@$serveur_dest 'cat >$DOSSIER_DEST/$PREFIX$i.sql.gz'"
done


Le 16/11/2010 16:49, Laurent Druffin a écrit :
#!/bin/sh
DOSSIER_TEMPORAIRE_LOCAL=/xxx/xxx/xxx
SERVEUR_DEST=xxxxxx
DOSSIER_DEST=/xxxx/xxx/xxx
UTILISATEUR_DISTANT=xxxxx
MOT_DE_PASSE_SQL=xxxxx
UTILISATEUR_SQL=admin
PREFIX=serveur-xxxx-

for i in $( echo "show databases;" | mysql -uadmin -p$MOT_DE_PASSE_SQL | grep -v "Database" ); do mysqldump $i -u $UTILISATEUR_SQL --password=$MOT_DE_PASSE_SQL > $DOSSIER_TEMPORAIRE_LOCAL/$i.sql
 gzip $DOSSIER_TEMPORAIRE_LOCAL/$i.sql

# penser avant au certificat SSH et au ~/.ssh/authorized_keys kivabien !
scp $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz $utilisateur_dist...@$serveur_dest:$DOSSIER_DEST/$PREFIX$i.sql.gz
 rm $DOSSIER_TEMPORAIRE_LOCAL/$i.sql.gz
done

# restauration avec la commande :
# gunzip fichier_sauvegarde.sql.gz
# mysql -u root -p NomDeLaBase < fichier_sauvegarde.sql
#eof()

et un simple crontab kivabien aussi... :)
C'est basique et sûrement améliorable (garder un historique par exemple), mais ça fonctionne et ça répond à mes besoins.

My 2 cents...
^^
_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/


--
Greg

_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/

Répondre à