AngelDisc Posted February 23, 2011 Share Posted February 23, 2011 Bonjour.Le script est fonctionnel, mais je suis certain qu'on peu encore l'améliorer. <?php /* Modifiez vos parametres MySQL */ $base = ""; // Serveur de base de donnée $host = ""; // Base de données /* pour acceder a la base vielle de 7 jours, ajoutez -s à la fin du nom, comme ceci: NomDeLaBaseSQL-s */ $user = ""; // Utilisateur $passe = ""; // Mot de passe $db_charset = "utf8"; /* mettre utf8 ou latin1 */ $date = date("Y-m-j-H-i"); // date année-mois-jour-heure-minute $site = "nom du site"; // nom du site $to = "[email protected]"; // adresse du destinataire $sujet = "Backup de la base de donnee"; // sujet du mail $fichier = $site.'_'.$date.".sql.zip"; // fichier crée $reply = "[email protected]"; // adresse de réponse $from = $reply; // adresse de l'expediteur /* C'est tout. Placez ce fichier par FTP quelque part sur votre serveur Web, dans un endroit discret. */ /* Puis ouvrez-le avec votre navigateur web et suivez les instructions. */ // on crée le fichier et si le fichier est present sur le serveur alors .... if (system("mysqldump --host=$base --user=$user --password=$passe -C -Q -e --default-character-set=$db_charset $host | gzip -c > $fichier")); { // envoyer le mail mail_attachement($to , $sujet , $fichier , $typemime , $fichier , $reply , $from); // suppression du fichier unlink($fichier); } function mail_attachement($to , $sujet , $fichier , $typemime , $fichier , $reply , $from){ $limite = "_parties_".md5(uniqid (rand())); $mail_mime = "Date: ".date("l j F Y, G:i")."\n"; $mail_mime .= "MIME-Version: 1.0\n"; $mail_mime .= "Content-Type: multipart/mixed;\n"; $mail_mime .= " boundary=\"----=$limite\"\n\n"; //Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML $texte = "This is a multi-part message in MIME format.\n"; $texte .= "Ceci est un message est au format MIME.\n"; $texte .= "------=$limite\n"; $texte .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; $texte .= "Content-Transfer-Encoding: 7bit\n\n"; $texte .= "\n\n"; //le fichier $attachement = "------=$limite\n"; $attachement .= "Content-Type: $typemime; name=\"$fichier\"\n"; $attachement .= "Content-Transfer-Encoding: base64\n"; $attachement .= "Content-Disposition: attachment; filename=\"$fichier\"\n\n"; $fd = fopen( $fichier, "r" ); $contenu = fread( $fd, filesize( $fichier ) ); fclose( $fd ); $attachement .= chunk_split(base64_encode($contenu)); $attachement .= "\n\n\n------=$limite\n"; return mail($to, $sujet, $texte.$attachement, "Reply-to: $reply\nFrom: $from\n".$mail_mime); } ?> Es ce qu'il y a moyen de récupérer toutes les info (Serveur de base de donnée , utilisateur, nom du site etc...) pour éviter de les marquer dans le dur du code ?Merci Link to comment Share on other sites More sharing options...
DevNet Posted February 23, 2011 Share Posted February 23, 2011 Bonjour,Vous pouvez toujours rajouter les includes en entête de fichier pour récupérer tout ce qu'il vous faut : <?php // si le script est à la racine require_once(dirname(__FILE__).'/config/config.inc.php'); require_once(dirname(__FILE__).'/init.php'); /* Modifiez vos parametres MySQL */ $base =_DB_SERVER_; // Serveur de base de donnée $host = _DB_NAME_; // Base de données /* pour acceder a la base vielle de 7 jours, ajoutez -s à la fin du nom, comme ceci: NomDeLaBaseSQL-s */ $user = _DB_USER_; // Utilisateur $passe = _DB_PASSWD_; // Mot de passe [...] etc, etc, Faites attention $base et $host ont été inversé dans votre code, c'est fonctionnel avec ce que je vous ai mis car j'ai repris l'inversion, mais c'est pas logique.Bien cordialement Link to comment Share on other sites More sharing options...
AngelDisc Posted March 3, 2011 Author Share Posted March 3, 2011 Bonsoir.J'ai crée ce module, mais j'ai besoin d'avis de gens bien plus competent que moi J'suis pas certain que le cron fonctionne bien.Un conseil ou une aide, je prends avec plaisir Bon dev backupbdd.zip Link to comment Share on other sites More sharing options...
Broceliande Posted March 3, 2011 Share Posted March 3, 2011 Bonsoir.J'ai crée ce module, mais j'ai besoin d'avis de gens bien plus competent que moi J'suis pas certain que le cron fonctionne bien.Un conseil ou une aide, je prends avec plaisir Bon dev Riche idée en tout cas.Comme j'ai la chance d'avoir sous la main quasiment que des dédiés , je fais mes backups en bash et upload sur un remote ftp.Celà dit quelques clients font exception et ton module pourrait s'avérer utile.Je vais le tester avec plaisir, y compris en cron si ça peut t'aider.Première idée néanmoins, avant même de le tester, ce serait de voir si quitte à utiliser la commande system() , il ne serait pas préférable par souci de rapidité et d'allègement de la tâche d'utiliser mysqlhotcopy plutot que mysqldump, suivi d'un tar pour allèger le mail. J'ai pu me permettre de faire des dumps chaque heure grace à hotcopy là ou je n'en faisais qu'un à deux par jour pour ne pas charger la mule et laisser la fluidité aux visiteurs.Ce qui me fait peur , c'est que les BDD presta mêmes compressées font rarement moins de 4MO et que peu de personnes pourront se permettre de s'envoyer le dump par mail ? Un lien de téléchargement du fichier ne serait-il pas plus prudent ?Dans tous les cas je vais tester ;) merci pour cette contrib Link to comment Share on other sites More sharing options...
AngelDisc Posted March 4, 2011 Author Share Posted March 4, 2011 Bonjour.Comme tu le dis, la base de donnée n'est pas envoyer par mail, puisque la taille ne le permet pas. Par contre, j'envoie le lien pour la récupérer.Merci des retours, je vais surement mettre le module dans la partie module tiers et continuer à dev tranquillou Link to comment Share on other sites More sharing options...
zell25 Posted March 15, 2011 Share Posted March 15, 2011 salut, j'ai testé ton module qui est extrement pratique ! Bravo !! mais apparament avec ovh le script ne fonctionne pas du moins chez moi . Le module me donne le lien /homez.406/monsite/www/monsite/modules/backupbdd/savecron.php?key=F3RCEKU............ et ovh me renvoie dans un log page not found 404. Tu sais peut etre comment je peu resoudre ca? Link to comment Share on other sites More sharing options...
cockpitinferno Posted March 22, 2012 Share Posted March 22, 2012 ce module a l'air de fonctionner, cependant j'ai 2 questions: la sauvegarde se fait elle en passant par mysql? quelle est la fréquence de sauvegarde? merci Link to comment Share on other sites More sharing options...
cockpitinferno Posted April 3, 2012 Share Posted April 3, 2012 un petit up, je constate que ma bdd n'a pas été sauvegardée régulièrement. Link to comment Share on other sites More sharing options...
BubbleWorld Posted May 13, 2012 Share Posted May 13, 2012 (edited) Bonjour à tous, Un grand Merci pour ce partage ! Je viens d'installer le script de Vins83 sur un ovh mutualisé et tout à l'air de bien fonctionner. J'ai juste un message d'erreur : Notice: Undefined variable: typemime in /homez.91/approbtp/www/backupBDDmail.php on line 24 Une idée ? Edited May 13, 2012 by BubbleWorld (see edit history) Link to comment Share on other sites More sharing options...
akhawat Posted November 20, 2013 Share Posted November 20, 2013 Bonjour est ce que le module fonctionne avec la 1.5.6 ? sinon quelqu'un connait il l'url a rentrer dans crontab pour faire une sauvegarde automatique regulière ? merci Link to comment Share on other sites More sharing options...
akhawat Posted December 29, 2013 Share Posted December 29, 2013 personne pour me guider pour l'url à entre dans crontab pour faire une sauvegarde de la BDD automatique ? 1 Link to comment Share on other sites More sharing options...
laurent_cv Posted February 1, 2015 Share Posted February 1, 2015 personne pour me guider pour l'url à entre dans crontab pour faire une sauvegarde de la BDD automatique ? http://le_nom_du_site/modules/backupbdd/savecron.php?key=LA_CLEF_FOURNIE Voila c'est tout. Link to comment Share on other sites More sharing options...
dkbane Posted October 18, 2016 Share Posted October 18, 2016 (edited) Bonjour, Un grand merci, ça a l'air de marcher sur mon 1.5 ! Maintenant il faut penser a les télécharger de temps en temps, ce qui demande du temps et une tête ^^ Auriez-vous une solution pour améliorer cela ? p.s. un petit .htaccess dans le dossier backup me semble intéressant, pour éviter aux autres d'accéder aux bases de données Edited October 18, 2016 by dkbane (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now