vespa Posté 9 Mars 2006 Posté 9 Mars 2006 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)
Dan Posté 9 Mars 2006 Posté 9 Mars 2006 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
vespa Posté 9 Mars 2006 Auteur Posté 9 Mars 2006 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
Dan Posté 9 Mars 2006 Posté 9 Mars 2006 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"
vespa Posté 9 Mars 2006 Auteur Posté 9 Mars 2006 Merci Dan pour cette explication très clair Je vais essayer de mettre ça en place ce soir
jb084 Posté 11 Avril 2006 Posté 11 Avril 2006 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
Julien L. Posté 11 Avril 2006 Posté 11 Avril 2006 Bonsoir, voici un lien intèressant : http://fr.wikipedia.org/wiki/Crontab
Dan Posté 11 Avril 2006 Posté 11 Avril 2006 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
Fuleran Posté 11 Avril 2006 Posté 11 Avril 2006 (modifié) 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é 11 Avril 2006 par fuleran
Tboh Posté 13 Avril 2006 Posté 13 Avril 2006 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
Dan Posté 13 Avril 2006 Posté 13 Avril 2006 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 ?
Dan Posté 13 Avril 2006 Posté 13 Avril 2006 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)
Fuleran Posté 13 Avril 2006 Posté 13 Avril 2006 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
Dan Posté 13 Avril 2006 Posté 13 Avril 2006 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
vespa Posté 28 Avril 2006 Auteur Posté 28 Avril 2006 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 ?
ZuckBin Posté 22 Juin 2006 Posté 22 Juin 2006 Merci beaucoup, c'est très utile, et ca fonctionne à merveille. J'ai fais en .sh, et avec base=$1 Comment fais t'on l'opération inverse, dans le meme style. Cordialement.
ZuckBin Posté 30 Juin 2006 Posté 30 Juin 2006 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.
Dan Posté 30 Juin 2006 Posté 30 Juin 2006 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
grazianno Posté 6 Août 2006 Posté 6 Août 2006 (modifié) 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é 6 Août 2006 par grazianno
Dan Posté 7 Août 2006 Posté 7 Août 2006 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
Guest Albert_H Posté 7 Août 2006 Posté 7 Août 2006 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
grazianno Posté 7 Août 2006 Posté 7 Août 2006 Merci Dan. je voudrai aussi savoir si je peux faire le backup d'un dossier de la même maniere
Dan Posté 8 Août 2006 Posté 8 Août 2006 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
grazianno Posté 8 Août 2006 Posté 8 Août 2006 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
NorSeb Posté 8 Août 2006 Posté 8 Août 2006 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant