Précédent   Forum des professionnels en informatique > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
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 29/07/2006, 19h54   #1
Invité de passage
 
Inscription : juillet 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 10
Points : 4
Points : 4
Par défaut Automatiser ses sauvegardes

Bonjour,

Je suis néophyte en php.

J'ai réalisé un site php avec plusieurs bases mysql.

Actuellement pour faire mes sauvegardes, je vais dans phpmyadmin, je récupere via l'interface un zip de sauvegarde de chaque base mysql, et je recupere aussi le contenu de mon site via FTP.

C'est assez fastidieux.

Je cherche un moyen pour automatiser cela en php executé périodiquement avec webcron.org.

-Comment faire en php pour sauvegarder une base mysql dans un fichier?

-Comment faire pour récupérer une archive compressée de son espace FTP?

Merci
pasteque est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2006, 09h12   #2
Membre Expert
 
Avatar de Bidouille
 
Inscription : mars 2003
Messages : 1 158
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 1 158
Points : 1 054
Points : 1 054
Fais une recherche sur ce forum sur "dump". Regarde également les PHP et MySql, il me semble qu'il y a des infos là-dessus.
__________________
Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.
Bidouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 00h53   #3
Membre à l'essai
 
Homme Alexis
Inscription : août 2006
Messages : 18
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 29
Localisation : France

Informations forums :
Inscription : août 2006
Messages : 18
Points : 20
Points : 20
Envoyer un message via MSN à slyderkiller
salut bon je tes fais un script pour la sauvegarde de tout tes tables sql
avec sauvegarde dans un dossier sur ton serveur (repertoir sql a creer) et ensuite envoi par mail de la sauvegarde ta juste a définir les variable au debut du script et colle ca dans une page execute la page et voila

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
 
<?php
//sauvegarde des table sql par slyderkiller@msn.com
 
/*
liste des variable a remplire ci-dessous
*/
	$dbchemin='sql.free.fr'; //emplacement de la base de données
	$base = 'nom_base'; //nom de la base de donnée
	$dbuser='login_base'; //login de la base de données
	$dbpass='pass_base'; //mot de passe de la base de données
   $dbconnect=@mysql_connect($dbchemin,$dbuser,$dbpass);
 
   $dir = 'sql/'; //chemin du repertoir de sauvegarde (doit etre créé)
   $mail = 'ton_mail@free.fr'; //ton mail
 
/*
voila plus rien a toucher execute la page et regarde tes mail
*/
 
   function Compacter($base) { // Permet de compacter la base avant de lancer toute la procédure 
      $tables = mysql_list_tables($base); 
      while ($enr = mysql_fetch_row($tables)) 
         @mysql_query("OPTIMIZE TABLE ".$enr[0]);
    }
 
   if($connexion = $dbconnect) { // on effectue la connexion 
 
      Compacter($base); 
 
      $select_base=@mysql_select_db($base); // Selection de la base de données 
 
      // CREATION DU FICHIER 
 
      $fname = $dir."backup_".$base.".sql"; //emplacement du fichier de sauvegarde
      $f2 = fopen($fname,"w"); 
 
      fputs($f2,"# Sauvegarde de la base de données\n"); 
      fputs($f2,"# Batch par Alexis BOGEMANS - 2006\n\n"); 
      $tables = mysql_list_tables($base); 
      while ($enr = mysql_fetch_row($tables)) { 
         fputs($f2,"# Les tables traitées sont ".$enr[0].";\n"); 
      } 
      fputs($f2,"\n"); 
      $tables = mysql_list_tables($base); 
      while ($enr = mysql_fetch_row($tables)) { 
         fputs($f2,"DELETE FROM $enr[0];\n"); 
      } 
 
      $tables = mysql_list_tables($base); 
      while ($enr = mysql_fetch_row($tables)) { 
         $res = mysql_query("SELECT * FROM $enr[0]"); 
         // le nombre de champs de la table 
         $champs = mysql_num_fields($res);  
         // Pour chaque ligne 
         while($val=mysql_fetch_array($res)) { 
            $tmp = "INSERT INTO ".$enr[0]." VALUES("; 
            $c=0; 
            // Pour chaque champ 
            while($c < $champs) { 
               // Une virgule sauf au premier 
               if($c>0) $tmp .= ", "; 
               // Le contenu du champ 
               $tmp .= "'".AddSlashes($val[$c])."'"; 
               $c++; 
            } 
            $tmp .= ");\n"; 
            // Ecrit la ligne 
            fputs($f2,$tmp); 
         } 
      } 
      fclose($f2);
 
   }
 
  //envoi par mail de la sauvegarde
$boundary='didondinaditondelosdudosdodudundodudindon';
//En-têtes du mail
$headers="From: ".$mail."\r\n
MIME-Version: 1.0\r\n
Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n\n";
 
//Corps du mail en commençant par le message principal
$body="--". $boundary ."\n
Content-Type: text/plain; charset=ISO-8859-1\r\n\n
Voici la sauvegarde sql de ton site.\n\n";
 
// Piece jointe
 
$fichier=file_get_contents($fname);
/* On utilise aussi chunk_split() qui organisera comme il faut l'encodage fait en base 64 pour se conformer aux standards */
$fichier=chunk_split($fichier);
 
//Ecriture de la pièce jointe
$body = $body . "--" .$boundary. "\n".$fichier ;
 
//Fermeture de la frontière
$body = $body . "--" . $boundary ."--";
 
//Envoi du mail
mail($mail, "sauvegarde sql", $body, $headers);
 
 
   ?>
slyderkiller est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2006, 01h03   #4
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Si tu est sur un dédié utilises plutot un script shell.
Avec à l'intérieur un cp, un mysqldump, gz de tout sa.
Et puis après tu pourrais imaginer un envoi en FTP sur un autre serveur de backup.
Ou juste une copie sur un autre dd.

C'est peut être possible en mutu, mais je n'ai jamais essayé.
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 21h05   #5
Scurz
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Utilise mysqldump, c'est très simple à utiliser, regarde sur la doc de mysql, très bien expliquée.
Si c'est un serveur sous Linux, utilises la console, bien plus rapide .
Tu peux même y mettre un cron si tu souhaites faire une sauvegarde régulière.

@++
  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 12h26.


 
 
 
 
Partenaires

Hébergement Web