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 : Sélectionner tout - Visualiser dans une fenêtre à part
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);
?>