IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Probleme avec script de sauvegarde de BDD


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Points : 13
    Points
    13
    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 : 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);
    ?>

  2. #2
    Expert éminent sénior

    Avatar de Deepin
    Homme Profil pro
    Ingénieur - Chef de projet Modélisation/Simulation
    Inscrit en
    Avril 2004
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 164
    Points : 51 026
    Points
    51 026
    Par défaut
    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++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Merci de ton aide.

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

    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é!

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    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

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    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

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    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 ...)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] probleme avec script mail menu deroulant
    Par gtraxx dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/09/2006, 03h04
  2. [SQL] Problème avec script de pagination et requête sql sur deux tables
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/06/2006, 14h06
  3. [SQL] Problemes avec des champs uniques
    Par 000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/06/2006, 13h28
  4. Probleme avec <script src=
    Par MicroPuce dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/05/2006, 15h12
  5. probleme avec script perl grab_tv_fr.pl
    Par ZiMo dans le forum Langage
    Réponses: 6
    Dernier message: 30/11/2005, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo