Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 28/06/2007, 19h07   #1
Invité de passage
 
Inscription : juin 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 14
Points : 4
Points : 4
Par défaut [SQL] Probleme avec script de sauvegarde de BDD

Bonjour,

J'ai trouver un fabuleux script qui permet d'enregistrer le contenu du ftp ainsi que la sauvarge SQL sur un autre serveur ftp mais je n'arrive pas à le faire fonctionner.
Merci à vous de m'aider à faire fonctionner cette merveille.
Merci beaucoup d'avance !

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
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?
/*
Ce script est un utilitaire de sauvegarde de l'intégralité d'un site internet
Il permet de transférer sur un compte FTP l'intégralité des fichiers, ainsi
que vos bases de données MySQL
 
Chaque répertoire est sauvegardé individuellement dans un fichier compressé repertoire.tgz
Le répertoire racine est sauvegardé en racine.tgz
la(les) base(s) MySQL sont sauvegardée dans un fichier sqlbackup.tgz
Le tout va dans un repertoire serveur.ftp/backup
 
Ce script ne peut fonctionner que si votre hébergeur accepte la connexion à un FTP distant,
 et qu'il accepte de lancer des commandes système exec(). AUTANT DIRE QUE CELA 
 ELIMINE LA QUASI TOTALITE DES HEBERGEURS GRATUITS (Free, Multimania). Par contre,
 un compte gratuit peut faire l'affaire pour le ftp de destination.
 
 Pour info, j'utilise se scipt pour sauvegarder un script hébergé sur OVH à destination
 d'un compte ftp FREE.
 La sauvegarde d'un petit site de 17Mo avec une base de 800Ko met un peu moins de 30 secondes.
 
 
 Jérôme HUBERT
 
 
 
----------------------------------------------------------------------
PARAMETRES DE CONFIGURATION
----------------------------------------------------------------------
*/
 
 
$local_path="/home/jurasudff/www"; 				//chemin local sur votre serveur de la racine du site
$host="sql1.ovh.net"; 							// votre serveur MySQL
$base1="jurasud"; 							//nom base MySQl N°1
$base2="jurasud"; 						// nom base MySQL N°2
$user1="jurasud"; 							//utilisateur base MySQl N°1
$user2="jurasud"; 						// utilisateur base MySQL N°2
$passwd1 = "****"; 							//Password base MySQL N°1
$passwd2="****";  								//Password base MySQL N°2
$ftp_server = "ftpperso.free.fr"; 				//serveur ftp de destination
$ftp_user_name = "jurasud";					// identifiant ftp
$ftp_user_pass = "****";					//password ftp
 
/*
----------------------------------------------------------------------
FIN DES PARAMETRES DE CONFIGURATION
----------------------------------------------------------------------
*/
//CREATION TEMPORAIRE d'UN REPERTOIRE D'ACCUEIL POUR LES FICHIERS MYSQL
exec("mkdir $local_path/sqlbackup");
 
//SAUVEGARDE DES BASES MYSQL --------------------------------------------
exec("mysqldump -h$host -u$user1 -p$passwd1 $base1> sqlbackup/$base1.sql");
 
// EFFACEZ OU COMMENTEZ CETTE LIGNE SI VOUS N'AVEZ QU'UNE BASE MySQL
@exec("mysqldump -h$host -u$user2 -p$passwd2 $base2> sqlbackup/$base2.sql");
//------------------------------------------------------------------------
 
// CONNEXION FTP ---------------------------------------------------------
 
$type = "FTP_ASCII";
	   echo "type de connexion $type <BR>";
	   $conn_id = ftp_connect("$ftp_server");
	   $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass"); 
	   @ftp_mkdir($conn_id, "backup"); 
	   ftp_chdir($conn_id, "backup"); 
	   if ((!$conn_id) || (!$login_result)) 
	      { 
		  echo "La connexion FTP a échoué!";
		echo "Tentative de connexion à $ftp_server en tant que $ftp_user_name"; 
		die; 
		} 
		else 
		{
		echo "Connecté à $ftp_server, avec $ftp_user_name <BR>";
		}
 
// Ouverture du répertoire racine
$link=opendir($local_path); 
 
while (gettype($name=readdir($link))==string  )
{
if (is_dir($name))
{
if ($name=="..")
{continue;}
$name=str_replace (".", "", $name);
 
// SAUVEGARDE DES FICHIERS *.* DU REPERTOIRE RACINE
if ($name=="")
	{exec("tar cz *.* > racine.tgz");
	$name="racine";
	 }
//SAUVEGARDE DE CHAQUE SOUS REPERTOIRE DE LA RACINE
if ($name<>"")
{exec("tar cz ".$name."/* > ".$name.".tgz");
 }
echo "<b>REPERTOIRE : ".$name."<br></b>";
	   $destination_file = $name.".tgz";
	   $source_file =  $name.".tgz";   
 
// TRANSFERT FTP, C'EST LA QUE C'A BLOQUE SOUVENT......	   
$upload = ftp_put($conn_id, "$destination_file", "$source_file", $type); 
if (!$upload) 
      { 
   	  echo "<h2 color=\"red\">Le téléchargement FTP échoué!</h2><hr>";
   	  } else {
   	  echo "Téléchargement de ".$source_file." sur ".$ftp_server."<b> ".$dir."</b> en ".$destination_file." <b><font color=#00FF00 size=3>OK</font></b><hr>";
   	  }
 
// EFFACEMENT DES FICHIERS ET REPERTOIRES TEMPORAIRE
exec("rm *.tgz");
exec("rm $local_path/sqlbackup/*.sql");
exec("rmdir $local_path/sqlbackup");
 
 
}
 
// ON NE COMPRESSE ET TRANSFERE QUE DES REPERTOIRES (et leur contenu), PAS DES FICHIERS SOLITAIRES
if (is_file($name))
{continue;}
 
}
 
// FERMETURE DU REPERTOIRE RACINE, DE LA CONNEXION FTP
closedir($link);
ftp_quit($conn_id);
?>
killbrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 19h47   #2
Rédacteur/Modérateur
 
Avatar de Deepin
 
Homme Deepin
Ingénieur - Chef de projet Modélisation/Simulation
Inscription : avril 2004
Messages : 1 341
Détails du profil
Informations personnelles :
Nom : Homme Deepin
Localisation : Ile Maurice

Informations professionnelles :
Activité : Ingénieur - Chef de projet Modélisation/Simulation
Secteur : Industrie

Informations forums :
Inscription : avril 2004
Messages : 1 341
Points : 7 085
Points : 7 085
Envoyer un message via Skype™ à Deepin
hello,

fodrait que tu donnes un peu plus d infos !!!
Rien ne fonctionne ??
Par exemple il te créer le dossier ou meme pas ?
Verifie tes chemins et tes droits user !!

A++
Deepin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 20h20   #3
Invité de passage
 
Inscription : juin 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 14
Points : 4
Points : 4
Merci de ton aide.

Il m'affiche et ceci et sur le ftp rien ne se passe :

Citation:
REPERTOIRE : racine

Warning: ftp_put() expects parameter 4 to be long, string given in /home/killbrice/web/www/backuPHP.php on line 97
Le téléchargement FTP échoué!
killbrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 22h50   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Ici vous avez une chaîne de caractères :
Alors qu'une valeur numérique est attendue par la fonction ftp_put comme 4e paramètre. Pour être plus précis, vous devriez soit utiliser la constante FTP_ASCII soit FTP_BINARY pour le mode de transfert :
C'est ce qu'indique le message d'erreur
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 23h05   #5
Invité de passage
 
Inscription : juin 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 14
Points : 4
Points : 4
Merci de ton aide julb, le script se met en route mais cependant il ne m'exporte que les images mais pas le forum ni sa base de données.
Merci à toi
killbrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2007, 00h25   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par killbrice
le script se met en route mais cependant il ne m'exporte que les images mais pas le forum ni sa base de données
Il nous faudrait plus de détails pour comprendre et localiser le problème : messages d'erreur (mettre error_reporting à E_ALL), les fichiers effectivement uploadés sur votre espace de sauvegarde, éventuellement un exemple de l'organisation de vos fichiers sur votre espace primaire. Il faudrait surtout savoir si la fonction exec et les commandes qui lui sont fournies passent (en récupérant par exemple la sortie et le code de sortie). Le safe mode n'est pas actif ?

Sinon, le code manque de lisibilité notamment au niveau de l'indentation (bon, je sais ce n'est pas le vôtre ...)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2007, 00h48   #7
Invité de passage
 
Inscription : juin 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 14
Points : 4
Points : 4
Alors si j'ai bien compris,

Le CHMod de mes fichier est de 755 et le dossier du forum se trouve à la racine du ftp.

N'hésitez pas à me posez d'autres questions !
killbrice 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 16h56.


 
 
 
 
Partenaires

Hébergement Web