Gecko64 Posté 15 Juillet 2009 Posté 15 Juillet 2009 Bonjour, voilà en fait je sais comment faire un backup d'une base de donnée sous MySQL. Je sais aussi scripter pour faire un backup auto de plusieurs DB mais voilà ou se pose mon souci: Pour expliquer, je vais avoir de manière dynamique une création de bases de données sous MySQL qui m'obligerait de modifier sans cesse mon script de backup a chaque nouvelle DB qui apparait... Cela sera du au fait que j'ai toujours eu en projet la création de forum publiques genre forumactif... Donc un forum ouvert = une nouvelle DB qui apparait et donc a chaque fois une ligne de backup a rajouter a mon script... Ma question est donc de savoir si il existe sous MySQL une commande qui une fois lancée, ferait un backup de TOUTES les DB comprises dans MySQL (commande en root je suppose). Un ami lui fait un peu a la barbare en copiant le répertoire complet qui contient tous les fichiers de MySQL mais bon, ca n'est pas propre je trouve... J'ai déjà cherché sur les forums mais je n'ai pas trouvé de réponse a ma question... Merci Gecko64
Dan Posté 15 Juillet 2009 Posté 15 Juillet 2009 Plutôt que de sauver toutes les bases dans un seul fichier, pourquoi ne pas les sauver l'une après l'autre... Par exemple : for i in `find /home/mysql -type d | sed 's#/home/mysql/##'`donice -10 /usr/local/mysql/bin/mysqldump -u$USER -p$PASSWORD -e -q -Q --add-drop-table $i | gzip > $LOCALDIR/sql/$i.sql.gzrsync -alHvzcpog -e 'ssh' $LOCALDIR/sql/$i.sql.gz $NIC_HANDLE:rsync/bases-$current/done Dan PS: vérifie de chemin de mysqldump, et le répertoire dans lequel se trouvent les bases... pour le reste cela fait plusieurs années que cela marche sur une bonne centaine de serveurs
Gecko64 Posté 15 Juillet 2009 Auteur Posté 15 Juillet 2009 Ha oui je viens de lire ton script dans les grandes lignes, c'est assez avancé Je vais faire un tour dans le man de quelques commandes pcq il y a certains paramètres que je ne comprends pas encore ainsi EDIT: ha ben j'ai compris. Pas mal la commande sed, je ne la connaissais pas celle la Oui donc je pourrai faire en sorte de passer en paramètre $USER et $PASSWORD a mon script qui seront le login et pass ROOT. Bien que Debian lui même possède je sais un compte aussi pour lui se connecter a MySQL et y faire des opérations ( /etc/mysql/debian.cnf ). Peut être moyen aussi d'exploiter ca, enfin je verrai Merci Dan
Gecko64 Posté 15 Juillet 2009 Auteur Posté 15 Juillet 2009 Ca c'est une question que je me suis toujours posée de savoir si il y a une modification dans la DB, si ca ne risquait pas de corrompre le fichier de backup qui serait en cours de réalisation. A mon avis ils doivent surement bosser sur un cache pendant que les données sont copiées du disque dur vers le backup?
Gecko64 Posté 15 Juillet 2009 Auteur Posté 15 Juillet 2009 for i in `find /var/lib/mysql/ -type d | sed 's#/var/lib/mysql/##'`donice -10 /usr/local/mysql/bin/mysqldump -u$USER -p$PASSWORD -e -q -Q --add-drop-table $i | gzip > $LOCALDIR/sql/$i.sql.gzrsync -alHvzcpog -e 'ssh' $LOCALDIR/sql/$i.sql.gz $NIC_HANDLE:rsync/bases-$current/done Il y avait un petit souci de / a la première ligne
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant