Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/01/2011, 09h59   #1
Invité de passage
 
Inscription : septembre 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 37
Points : 3
Points : 3
Par défaut Backup MySQL et envoi email

Bonjour à tous,

je débute en MySQL. J'ai déjà fait quelques petites choses très modestes et j'aurai besoin d'éclaircissements sur 2 points.

Je voudrais :
1) faire un backup journalier de ma table MySQL
2) envoyer ce backup par email

sachant que le backup de la table ne dépassera jamais 2 Mo. mais je suis obligé de faire des sauvegardes journalières car les données qui seront dedans ne doivent pas se perdre.

Comment dois-je procéder ?

Merci pour votre aide

neospirit
neospirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 13h30   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 985
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 985
Points : 18 232
Points : 18 232
Envoyer un message via MSN à CinePhil
mysqldump qui te génère un fichier .sql que tu peux mettre en pièce jointe à un courriel.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 15h36   #3
Invité de passage
 
Inscription : septembre 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 37
Points : 3
Points : 3
Merci beaucoup.

Je suppose que je mets cette commande dans fichier PHP et l'envoi du mail aussi.

neospirit
neospirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 15h55   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 985
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 985
Points : 18 232
Points : 18 232
Envoyer un message via MSN à CinePhil
mysqldump est une commande a exécuter en ligne de commande. Elle ne se lance donc pas en PHP comme une requête mais comme un exécutable de l'ordinateur. Je ne sais plus quelle instruction PHP permet de faire ça, ça fait longtemps que je ne l'ai plus utilisée.
Quant au mail, il y a une fonction PHP pour ça.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 16h00   #5
Invité de passage
 
Inscription : septembre 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 37
Points : 3
Points : 3
Donc comment faire pour exécuter le mysqldump sous php ?

Pour le mail ça devrai aller, je vais regarder comment faire un attachement.

Merci pour votre aide

neospirit
neospirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 09h29   #6
Invité de passage
 
Inscription : septembre 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 37
Points : 3
Points : 3
Bonjour, je reviens sur l'exécution d'un msqldump via PHP.

Comment faire cette fonction svp ?

merci

neospirit
neospirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 09h37   #7
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 985
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 985
Points : 18 232
Points : 18 232
Envoyer un message via MSN à CinePhil
exec()

Faut chercher un peu quand même !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 09h59   #8
Invité de passage
 
Inscription : septembre 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 37
Points : 3
Points : 3
Et comme ça ?

Code :
1
2
3
4
5
6
7
8
9
<?php
 
//attributions des variables
 
$command = "mysqldump --host=$host --user=$user --password=$pass $db > $backup";
 
system($command);
 
?>
neospirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 12h50   #9
Invité de passage
 
Inscription : septembre 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 37
Points : 3
Points : 3
Bon après quelques recherches, j'arrive à m'envoyer mon email.

Par contre le fichier ne fait que 2 octets donc rien dedans. Il est bien créé sur mon serveur et il fait 1687 octets (~1ko) et contient bien les données.

Voici le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
 
	$host = "db";
	$user = "db";
	$pass = "xxxx";
	$db = db;
	$date = date("Ymd-H\hi" );
	$backup = ".$date.".gz";
	$command = "mysqldump -h$host -u$user -p$pass $db | gzip> $backup";
 
 
	echo "BDD en cours de sauvegarde.......";
	system($command);
	echo "C'est fini. Récupérer la base par FTP. ";
 
 
$adresse_exp  = 'xxx@xxx.fr';
 $adresse_dest = 'xxxx@xxxx.fr';
 $adresse_dest2 = '';
 $sujet = 'Envoi de la BDD - Test2';
 $texte = "";
 $cheminfichier = '';
 $nomfichier = $backup;
 $mimeType = 'text/plain';
 $replyto = "";
 
mail_attachement($adresse_dest, $adresse_dest2, $sujet , $texte , $cheminfichier , $mimeType , $nomfichier  , $replyto , $adresse_exp);
 
?>
 
<?php
 
function mail_attachement($to , $bcc , $sujet , $message , $fichier , $typemime , $nom , $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";
 
//attachement
 $attachement = "------=$limite\n";
 $attachement .= "Content-Type: $typemime; name=\"$nom\"\n";
 $attachement .= "Content-Transfer-Encoding: base64\n";
 $attachement .= "Content-Disposition: attachment; filename=\"$nom\"\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\nBcc: $bcc\n".$mail_mime);
 }
 
?>
Je dois pas être loin ?
neospirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 14h28   #10
Invité de passage
 
Inscription : septembre 2009
Messages : 37
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 37
Points : 3
Points : 3
J'ai ajouté le chemin de fichier et maintenant le fichier pèse 2ko en gzip et l'email est bien envoyé. $backup étant le nom de mon fichier.

Cool

Code :
1
2
3
4
5
6
7
8
9
$adresse_exp  = 'xxx@xxx.fr';
 $adresse_dest = 'xxxx@xxxx.fr';
 $adresse_dest2 = '';
 $sujet = 'Envoi de la BDD - Test2';
 $texte = "";
 $cheminfichier = '$backup';
 $nomfichier = $backup;
 $mimeType = 'text/plain';
 $replyto = "";
neospirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h41.


 
 
 
 
Partenaires

Hébergement Web