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 21/01/2012, 14h30   #1
Invité de passage
 
Homme Laurent sartorio
Formateur en informatique
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Laurent sartorio
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 4
Points : 4
Par défaut Problème avec script de sauvegarde

Bonjour,
je déclenche 2 scripts à 1 heure d'intervalle.
Le script 1 fonctionne bien, il me réalise la sauvegarde de ma base1 dans le dossier du script et me créer une sauvegarde dans année/jour
Le script 2 se déclenche une heure pour tard pour une base 2. Il me crée bien la sauvegarde quotidienne dans le dossier du script mais pas dans le dossier année/jour
Voici le script 1 et 2. il y a surement qques choses à modifier dans le script 2 pour qui mette aussi la sauvegarde dans année/jour

Code php :
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
<?php
    // CONFIGURATION
 
    $host = "xxxxxxx.bdb";
    $user = "xxxxxxxxxx";
    $pass = "xxxxxxxxxxxx";
	$db = "xxxxxxxxxxxxx";
    $path = getcwd().'/'; // Répertoire où seront sauvegardés les dump, ici le répertoire du script 
 
    // SCRIPT (ne rien modifier)
 
    if($_MYSQL = mysql_connect($host,$user,$pass)) {
 
        // Création des dossiers pour la sauvegarde quotidienne annee/jour
        if(!is_dir($path.date(Y).'/')) {
            mkdir($path.date(Y).'/'); // Si le dossier de l'annŽe n'existe pas, on le crŽe
            $result .= 'Création du dossier '.date(Y).' \n';
        }
 
        // Si le dossier du annee/jour n'existe pas, on le crée et on fait la sauvegarde quotidienne
        $d = $path.date(Y).'/'.date(z).'/'; 
        if(!is_dir($d)) {
            mkdir ($d, 0700);
            $daily = 1;
            $result .= 'CrŽation du dossier '.$path.$d.' \n';
        }
 
        //$databases = mysql_list_dbs($_MYSQL); // On liste les bases sur le serveur
 
       // while ($dbs = mysql_fetch_array($databases)) {
            $file = $path.$db.'.sql.gz';
            $command = "mysqldump --opt -h$host -u$user -p$pass $db | gzip > $file";
            system($command);
            $result .= $db.' sauvegardé';  
 
            if($daily == 1) { // On des fichiers dans le répertoire de la sauvegarde quotidienne
                copy($file,$d.$db.'.sql.gz');
                $result .= ' + quotidienne ';
            }
 
            $result .= ' \n';
      //  }
        mysql_close($_MYSQL);
    }
    else $result = "Connexion au serveur MySQL impossible";
 
    echo $result;
 
?>
lolo81100 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 21/01/2012, 15h43   #2
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 055
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 44
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 3 055
Points : 4 934
Points : 4 934
Bonjour
Ce script est-il de toi ? Parce que ça semble bizarre d'arriver en disant "j'ai écrit un script mais je ne comprends pas ce que j'y ai mis"...

La copie du fichier dans le dossier "annee/jour" ne se fait que si "daily=1"
Et daily n'est mis à 1 que lorsque le dossier est créé.

Donc
- 1er appel: le dossier n'existe pas donc il est créé et daily est mis à 1 et le fichier dump est copié dans annee/jour
- 2° appel: le dossier existe donc il n'est pas créé et daily n'est pas mis à 1 et le fichier dump n'est pas copié dans annee/jour

Accessoirement je ne comprends pas trop pourquoi le fichier dump n'est pas directement créé dans annee/jour et la raison de cette copie intermédiaire...
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/01/2012, 17h03   #3
Invité de passage
 
Homme Laurent sartorio
Formateur en informatique
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Laurent sartorio
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 4
Points : 4
Par défaut Problème avec script de sauvegarde

Bonsoir,
je n'ai pas écris ce script, je l'ai juste configuré pour sauver ma base de données.
Le dump est copié dans le dossier du script d'abord puis dans année/jour parceque le dump du dossier script fait l'objet lui d'une sauvegarde externalisée.
Si vous savez le faire par contre j'aimerai bien que vous m'arrangiez le script pour qui me copie le dump dans le dossier du jour déjà existant.
Merci de votre aide.
Laurent
lolo81100 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/01/2012, 20h50   #4
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 055
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 44
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 3 055
Points : 4 934
Points : 4 934
Citation:
Envoyé par lolo81100 Voir le message
Le dump est copié dans le dossier du script d'abord puis dans année/jour parceque le dump du dossier script fait l'objet lui d'une sauvegarde externalisée.
Je comprends. Mais les liens sont justement fait pour dissocier "nom de fichier" et "contenu". Donc plutôt que de dupliquer le contenu, autant dupliquer juste le nom via un lien (je parle de lien réel et non de lien symbolique !!!)

Citation:
Envoyé par lolo81100 Voir le message
Si vous savez le faire par contre j'aimerai bien que vous m'arrangiez le script pour qui me copie le dump dans le dossier du jour déjà existant.
Ben enlève ce test if ($daily == 1) ou remplace le par if ($daily == 1 || 1) ou sors le $daily=1 de son bloc "if()" !!!
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/01/2012, 21h00   #5
Invité de passage
 
Homme Laurent sartorio
Formateur en informatique
Inscription : janvier 2012
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Laurent sartorio
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2012
Messages : 9
Points : 4
Points : 4
On vient de me donner la solution en remplaçant le if($daily == 1) par if(!file_exists($d.$db.'.sql.gz'))
Merci pour votre aide !
lolo81100 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 16h28.


 
 
 
 
Partenaires

Hébergement Web