Aller au contenu

Recherche scripts / conseils pour backup MySQL


vespa

Sujets conseillés

Bonjour,

J'aimerais avoir votre avis sur ce qui convient d'utiliser ou de faire (compressé ? et si oui à quel format etc.) pour des backups réguliers de quelques bases de données, dont une un peu lourde ?

Et si vous connaissez un bon script ou programme pour ça :)

Merci d'avance

PS : backup sur le même serveur sur le même disque (pour le moment)

Lien vers le commentaire
Partager sur d’autres sites

Salut Vespa,

Tout simplement avec mysqldump... en mettant les bons paramètres tu peux tout sauver rapidement,

Sur le Hub j'utilise ceux-ci toutes les 3 heures:

mysqldump -u$USER -p$PASSWORD -e -q -Q --add-drop-table $i | gzip > $LOCALDIR/$i.sql.gz

Il faut définir les variables USER, PASSWORD et LOCALDIR, et c'est tout bon :)

Lien vers le commentaire
Partager sur d’autres sites

Merci Dan pour cette information :)

Lorsque tu dis qu'il faut définir les variables, c'est comme en php ?

$USER = "TOTO";

Et il y a un moyen de lui dire pour quelle base de donnée on souhaite la sauvegarde ?

Et le script il n'y a pas d'extension particulière à lui donner comme par exemple : backup.PHP ?

Désolé pour ces questions de novice :blush:

Lien vers le commentaire
Partager sur d’autres sites

Désolé, j'oubliais la variable $i qui chez moi contient le nom de la base...

Tu peux simplement faire, dans ton cas:

USER="root"
PASSWORD="mot_de_passe"
BASE="nom_de_la_base"
LOCALDIR="/home/mon_repertoire"
mysqldump -u$USER -p$PASSWORD -e -q -Q --add-drop-table $BASE | gzip > $LOCALDIR/$BASE.sql.gz

Ce sera plus parlant pour toi. Tu mets ces lignes dans un fichier texte que tu nommes par exemple backup.sh

Tu changes les droits avec "chmod =x backup.sh"

Puis tu peux le lancer avec ./backup.sh ou avec backup.sh s'il est dans un répertoire couvert par ton $PATH.

Si tu veux en faire une fonction qui permet de sauver toutes tes bases au choix, tu remplaces:

BASE="nom_de_la_base"

par

BASE=$1

et appelles le script par "./backup nom_de_la_base"

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Pour "surfer" sur cette réponse, je souhaite automatiser la sauvegarde.

Dan > Ou faut il mettre le bout de code que tu as mis ci dessus pour que cela mardche correctement ?

Merci d'avance ;)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Tu peux mettre ce code dans un fichier texte, en mettant ceci comme première ligne:

#!/bin/bash

pour forcer l'interprétation par bash.

Ensuite, tu le rends exécutable avec "chmod +x nom_du_fichier

Et tu appelles ce fichier dans le crontab aux dates et heures de ton choix.

Dan

Lien vers le commentaire
Partager sur d’autres sites

Un petit détour en passant : Quelqu'un aurait-il un script (shell ou php) qui permettrait de faire la synchronisation de 2 répertoire (local vers distant) par FTP ?

Le but n'est pas d'uploader tous les fichiers à chaque fois mais que les nouveaux. Il faut aussi effacer du répertoire distant les fichiers n'existant plus en local.

rsync ne m'intéresse pas car je n'ai accés au répertoire distant que par FTP...

Merci d'avance,

Benoit

Modifié par fuleran
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Tu peux mettre ce code dans un fichier texte, en mettant ceci comme première ligne:

#!/bin/bash

pour forcer l'interprétation par bash.

Ensuite, tu le rends exécutable avec "chmod +x nom_du_fichier

Et tu appelles ce fichier dans le crontab aux dates et heures de ton choix.

Dan

<{POST_SNAPBACK}>

Dans ce cas là, ton backup est sur ton dedié, et si on te le pirate t'es HS.

Tu as un script pour faire un ftp sur un autre server ou PC?

Tboh

Lien vers le commentaire
Partager sur d’autres sites

Un petit détour en passant : Quelqu'un aurait-il un script (shell ou php) qui permettrait de faire la synchronisation de 2 répertoire (local vers distant) par FTP ?

Les deux sont sous Linux, ou tu as une machine windows en local ?

Lien vers le commentaire
Partager sur d’autres sites

Dans ce cas là, ton backup est sur ton dedié, et si on te le pirate t'es HS.

Tu as un script pour faire un ftp sur un autre server ou PC?

Si on le pirate, ou même si le disque dur lâche... :(

Ce n'est à mon avis qu'un "backup du pauvre", qui serait déjà mieux sur un disque secondaire (on peut démonter la partition entre les backups)

Lien vers le commentaire
Partager sur d’autres sites

Les deux sont sous Linux, ou tu as une machine windows en local ?

<{POST_SNAPBACK}>

Les deux sont sous linux mais je n'ai accés qu'à la machine locale. Le serveur de backup m'est fourni par l'hébergeur avec juste un compte FTP.

Il me faut donc un script à installer sur mon serveur qui va se connecter au serveur FTP de backup et "uploader" les fichiers locaux (avec synchro).

Merci d'avance,

Benoit

Lien vers le commentaire
Partager sur d’autres sites

Fast WebPage Exchanger (Weex) permet de synchroniser un repertoire ftp avec un repertoire local. Il permet de paramétrer plusieurs sites en détail (eviter tels fichiers, ignorer ces répertoires...) Le develloppement est arrêté mais on peut encore trouver weex sur le web.

Sinon, il y a aussi lftp qui peut s'utiliser en ligne de commande et a un mode "mirror" (dans les deux directions)

Dan

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

Je viens de mettre en place ce script sur mon dédié et ça à l'air de fonctionner par contre est ce que quelqu'un saurait faire pour que le lundi le backup se fasse dans "le repertoir du lundi", le mardi "dans le repertoire du mardi" afin de conserver toujours une semaine de backup minimum ?

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Bonjour,

Lors d'un dump mysql, et celui via phpmyadmin, les 2 fichiers sont bien différents, tout les 2 en .sql:

-celui via mysql fait par ex 1292ko

-celui via phpmyadmin fait 4169ko

De plus mon fichier fait par shell via un dump mysql semble ne pas fonctionner lorsque je souhaite l'importer avec phpmyadmin.

C'est pour cela que je repose ma question:

-Comment fait on en ligne de commande shell pour réimporter le dump par dessus les anciennes bases ?

Merci,

cordialement.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

La différence de taille peut s'expliquer par le fait que mo script utilise gzip, alors que phpMyAdmin a sa propre version. Mais peut-être n'as-tu même pas demandé de compression.

Pour recharger en base de données un fichier gzippé comme celui généré par ce script, il suffit d'une ligne de commande:

zcat fichier.sql.gz | mysql -uroot -pmot_de_passe nom_de_la_base

En remplaçant les mots en gras ci-dessus par les bonnes valeurs.

Dan

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
Bonjour,

La différence de taille peut s'expliquer par le fait que mo script utilise gzip, alors que phpMyAdmin a sa propre version. Mais peut-être n'as-tu même pas demandé de compression.

Pour recharger en base de données un fichier gzippé comme celui généré par ce script, il suffit d'une ligne de commande:

zcat fichier.sql.gz | mysql -uroot -pmot_de_passe nom_de_la_base

En remplaçant les mots en gras ci-dessus par les bonnes valeurs.

Dan

Bonjour,

est ce qu'il est possible d'envoyer ce backup à une boite mails ?

aussi comment ajouter la variable $host ds ce code

USER="root"
PASSWORD="mot_de_passe"
BASE="nom_de_la_base"
LOCALDIR="/home/mon_repertoire"
mysqldump -u$USER -p$PASSWORD -e -q -Q --add-drop-table $BASE | gzip > $LOCALDIR/$BASE.sql.gz

merci

Modifié par grazianno
Lien vers le commentaire
Partager sur d’autres sites

comment ajouter la variable $host ds ce code

USER="root"
PASSWORD="mot_de_passe"
BASE="nom_de_la_base"
LOCALDIR="/home/mon_repertoire"
mysqldump -u$USER -p$PASSWORD -e -q -Q --add-drop-table $BASE | gzip > $LOCALDIR/$BASE.sql.gz

merci

Tout simplement avec une ligne telle que:

HOST=nom.du.host

et en ajoutant -h$HOST dans la ligne d'appel de mysqldump.

Pour l'envoyer par mail, il faut envoyer le fichier généré comme pièce jointe, tout simplement

Lien vers le commentaire
Partager sur d’autres sites

Guest Albert_H

Merci Dan pour ces precieuses infos :)

Juste une demande de precision, peux tu faire ton dump sur un ftp?

C est encore mieux de sauvegarder physiquement ailleurs que sur le serveur lui meme :)

Lien vers le commentaire
Partager sur d’autres sites

Merci Dan pour ces precieuses infos :)

Juste une demande de precision, peux tu faire ton dump sur un ftp?

C est encore mieux de sauvegarder physiquement ailleurs que sur le serveur lui meme :)

Tu peux faire le dump en local et le transférer ensuite sur un ftp.

Alternative: copier le dump créé sur un autre serveur avec scp (nécessite accès au shell et clé ssh)

Merci Dan.

je voudrai aussi savoir si je peux faire le backup d'un dossier de la même maniere

Pour backuper un dossier, il faut par exemple créer une archive avec "tar". Ensuite, copier cette archive où tu veux (email, autre serveur...)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Pour backuper un dossier, il faut par exemple créer une archive avec "tar". Ensuite, copier cette archive où tu veux (email, autre serveur...)

Dan

Tu peux me donner stp le code pour créer l'archive avec tar ?

merci

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Pour archiver le dossier "test"

tar cvf nom_de_l_archive.tar test

mais la syntaxe peut, je crois, légèrement varier selon ton système.

Pour en savoir plus, lance la commande :

man tar

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...