OVH Cloud OVH Cloud

sauvegarde bd avec mail

12 réponses
Avatar
laurent.D
Bonjour à tous et meilleurs voeux.
Je recherche un petit script en php permettant d'exporter
(journalièrement)automatiquement un choix de tables d'une base MySql en
utilisant la fonction mail (hébergement mutualisé).
Merci d'avance
Laurent

10 réponses

1 2
Avatar
Vincent Lascaux
(journalièrement)automatiquement un choix de tables d'une base MySql en
utilisant la fonction mail (hébergement mutualisé).


Bonjour,

pOOcl (http://www.la-grotte.org/poocl/) est une librairie que je développe
pour faire ce genre de choses. Elle a été écrite pour me permettre de faire
des sauvegardes d'un site web (fichiers et base de donnée). Je viens d'y
rajouter la possibilité d'envoyer les résultats par mail.
Avec pOOcl, le code suivant devrait t'envoyer un mail avec un dump de la
base de donnée :

<?php
require_once "poocl.php";

//Open the connection to the mysql database
mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Cant connect to
database');

$source = pooclGetMySQLDumpReader(pooclOneFile, "database.sql");
$source->extract( new pooclMailWriter($to, $subject, $message) );

?>

Si la base de données est un peu grosse, tu peux vouloir l'envoyer zippée
<?php
require_once "poocl.php";

//Open the connection to the mysql database
mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Cant connect to
database');

$source = pooclGetMySQLDumpReader(pooclOneFile, "database.sql");
$source->extract(
new pooclZIPWriter(
new pooclMailWriter($to, $subject, $message),
"database.zip"
)
);
?>

Enfin, si tu veux n'envoyer que certaines tables
<?php
require_once "poocl.php";

//Open the connection to the mysql database
mysql_connect($dbhost, $dbuser, $dbpasswd) or die('Cant connect to
database');

$source = new pooclMultiReader();
$source->addSource(pooclGetMySQLTableDumpReader($table1, $database1,
$filename1));
$source->addSource(pooclGetMySQLTableDumpReader($table2, $database2,
$filename2));
//...

$source->extract(
new pooclZIPWriter(
new pooclMailWriter($to, $subject, $message),
"database.zip"
)
);
?>

Le code est toujours en phase de développement, donc il risque d'y avoir des
bugs. Si t'en trouve, tu peux me contacter par le site.

--
Vincent

Avatar
the-quoan
laurent.D a exprimé avec précision :
Bonjour à tous et meilleurs voeux.
Je recherche un petit script en php permettant d'exporter
(journalièrement)automatiquement un choix de tables d'une base MySql en
utilisant la fonction mail (hébergement mutualisé).
Merci d'avance
Laurent


le reflection est peut etre la premiere option a choisir avant de
demander de l'aide.

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net

Avatar
laurent.D


pOOcl (http://www.la-grotte.org/poocl/) est une librairie que je développe
pour faire ce genre de choses. Elle a été écrite pour me permettre de faire
des sauvegardes d'un site web (fichiers et base de donnée). Je viens d'y
rajouter la possibilité d'envoyer les résultats par mail.
Avec pOOcl, le code suivant devrait t'envoyer un mail avec un dump de la
base de donnée :


Merci pour le code :) je vais faire des éssai...

--
Laurent.D
Une carte postale de Tahiti
http://www.tahiticard.com

Avatar
Marc

Le code est toujours en phase de développement, donc il risque d'y avoir des
bugs. Si t'en trouve, tu peux me contacter par le site.



tres joli travail.

j'ai une idée de codage qui pourrait t'intéresser. J'ai installé un
programme de mirroring pour une distribution de Linux. De meme il
m'arrive souvent d'avoir a transmettre un répertoire sur un site Web
distant. Je m'etais dit qu'il y avait matiere a réaliser un service de
mirroring avec php.

J'ai rien trouvé a ce sujet sur le net ; il existe bien mirror,
sitecopy ... mais ca marche pas avec du protocole http, juste ftp.


Je peux detailler les specs si qq est intéressé. Je suis a 2 doigts
de l'implémenter, et c'est vrai qu'avec une bonne conception telle
que celle de poocl, le client et le serveur pourraient etre d'une
part ou de l'autre de maniere assez transparente.

Avatar
Vincent Lascaux
j'ai une idée de codage qui pourrait t'intéresser. J'ai installé un
programme de mirroring pour une distribution de Linux. De meme il m'arrive
souvent d'avoir a transmettre un répertoire sur un site Web distant. Je
m'etais dit qu'il y avait matiere a réaliser un service de mirroring avec
php.

J'ai rien trouvé a ce sujet sur le net ; il existe bien mirror,
sitecopy ... mais ca marche pas avec du protocole http, juste ftp.


Un truc simple :

- côté serveur (le site à dupliquer) : disons un fichier "mirror.php"
chdir($_SERVER['DOCUMENT_ROOT']);

//Lire quelque part la date de derniere sauvegarde
$source = new pooclMinTimeFilter($lastSave, new pooclDirectory('.'));
$source->extract(
new pooclTARWriter(
new pooclOutputWriter()
)
);

- côté client (le mirror) :
chdir($_SERVER['DOCUMENT_ROOT']);

$source = new pooclTARReader(new pooclFileReader("URL du
serveur/mirror.php"));
$source->extract( new pooclFilesWriter() );


Evidemment, il serait bon de mettre mirror.php dans un dossier protégé par
un mot de passe (et dans ce cas, je sais pas si fopen marche avec une URL).
Il y a aussi le problème des fichiers supprimés : ils seraient pas supprimés
côté mirror.

--
Vincent

Avatar
Otto
In article <41e41a27$0$22697$, Laurent.D wrote:
Je recherche un petit script en php permettant d'exporter
(journalièrement)automatiquement un choix de tables d'une base MySql en
utilisant la fonction mail (hébergement mutualisé).

backup.php

**********
require_once('mail.php'); // class pour l'envoie d'emails avec attach.

exec("mysqldump -h$db_hostname -u$db_username -p$db_password $db_name >
bak_base.sql");

// préparation du fichier backup pour l'envoie par e-mail.
$fichier = "bak_base.sql";
$sfichier = @fread(fopen("$fichier", "r"), filesize("$fichier"));

// instanciation de la classe mail
$mail = new mime_mail();

// paramètres
$mail->to = ""; // Adresse email de reception
$mail->subject = "Backup tables MySQL"; // Sujet
$mail->body = "Backup des tables"; // Corps du message
$mail->from = ""; // Adresse email de l'expediteur


// entêtes supplementaires (optionnel)
$entetedate = date("D, j M Y H:i:s -0700");
$entetemail .= "X-Mailer: PHP/" . phpversion() . "n" ;
$entetemail .= "Date: $entetedate";
$mail->headers = "$entetemail";

$mail->attach("$sfichier", "$fichier"); // fichier attaché
$mail->send();



Pour conclure appeler ce script régulièrement à l'aide de webcron.
http://www.webcron.org/
Otto

Avatar
laurent.D
(journalièrement)automatiquement un choix de tables d'une base MySql en
utilisant la fonction mail (hébergement mutualisé).



Bonjour,

pOOcl (http://www.la-grotte.org/poocl/) est une librairie que je développe
pour faire ce genre de choses. Elle a été écrite pour me permettre de faire
des sauvegardes d'un site web (fichiers et base de donnée). Je viens d'y
rajouter la possibilité d'envoyer les résultats par mail.


Superbe !
Je te remercie Vincent.
Je vais tester au plus vite.

Cordialement
--
Laurent.D
Une carte postale de Tahiti
http://www.tahiticard.com


Avatar
Vincent Lascaux
Je recherche un petit script en php permettant d'exporter
(journalièrement)automatiquement un choix de tables d'une base MySql en
utilisant la fonction mail (hébergement mutualisé).


Pour completer ce que j'ai dit : une sauvegarde quotidienne, c'est un peu
violent, surtout pour un hébergeur mutualisé et particulièrement si ta base
est grosse (peut être que hebdomadaire serait suffisant ?). Si ta base est
grosse, envoyer le résultat par mail, c'est un peu violent aussi...
Si l'hébergeur est Free, alors pour des raisons obscures, ils ne veulent pas
qu'on utise les fonctionnalités d'archive de poocl, et ils ne veulent pas
que des dumps de la base soient générés par un serveur en production
parcequ'ils ont une machine dédiée qui ne fait que ca (celle qui permet
d'utilise phpMyAdmin)

--
Vincent

Avatar
laurent.D
Je recherche un petit script en php permettant d'exporter
(journalièrement)automatiquement un choix de tables d'une base MySql en
utilisant la fonction mail (hébergement mutualisé).



Pour completer ce que j'ai dit : une sauvegarde quotidienne, c'est un peu
violent, surtout pour un hébergeur mutualisé et particulièrement si ta base
est grosse (peut être que hebdomadaire serait suffisant ?). Si ta base est
grosse, envoyer le résultat par mail, c'est un peu violent aussi...
Si l'hébergeur est Free, alors pour des raisons obscures, ils ne veulent pas
qu'on utise les fonctionnalités d'archive de poocl, et ils ne veulent pas
que des dumps de la base soient générés par un serveur en production
parcequ'ils ont une machine dédiée qui ne fait que ca (celle qui permet
d'utilise phpMyAdmin)

Merci de tes conseils

Cordialement,

--
Laurent.D
Une carte postale de Tahiti
http://www.tahiticard.com


Avatar
l.girardeau
Salut
question stupide pour un utilisateur confirmé, ou peut on trouver la class
mail.php necessaire pour le code de Otto

Merci par avance et désolé pour cette question



require_once('mail.php'); // class pour l'envoie d'emails avec attach.
1 2