full backup automatique impossible ! a l'aide svp

Discussion dans 'Hébergements Mutualisés' démarrée par malak-14, Aou 19, 2012.

  1. malak-14

    malak-14 New Member

    salut tous le monde voila j'ai suivie un tuto pour pouvoir faire une tache cron pour sauvegarder tout mon cpanel automatiquement tous les jours mais rien n'y fait ça ne veu pas , je reçoit par mail le code source de mon script et je ne vois pas ou j'ai bien pu faire une erreur !! j'ai ouvert un ticket mais aucune réponses concrète !:mad:

    donc je m'en remet à la communautée.

    donc j'ai un script nommé cpanel_backup.php à la racine de mon serveur avec ce code :
    PHP:
    <!--?php

    // ***************** Configuration *****************

    // Information du CPANEL
    $cputilisateur "XXXX"// Nom d'utilisateur du CPanel
    $cpmotdepass "XXXX"// Mot de passe de CPanel
    $domaine "jaka.planethoster.net"// Le serveur Planethoster (remplacer "requin") ou IP
    $skin "PlanetHoster"// le thème utilisé (Sa sert a rien mais il en faut un !

    // Information sur la sauvegarde
    $ftpmode "homedir"// FTP mode ("homedir" pour une complête, "ftp" for active, "passiveftp" for passive)

    //Scan antivirus (1=Activé || 0=Désactivé)
    $antivirus 1;

    //Nombre de jours pendant la quel sera stocké la sauvegarde
    $jours=60;

    // Notification information
    $emailnotification "XXX@garocado.fr"// E mail de notification

    // Sécurisé ou non avec httpS
    $securise 1// mettre a 1 pour SSL , sinon utilise http

    // permet de vérifier si le script fonctionne bien. un DE-BUG
    $test 1;


    // ***************** Ne pas toucher!! *****************

    if ($securise) { //Si sécurisé
    $url "ssl://".$domaine;//Domaine
    $port 2083//port 2083
    } else { //Sinon
    $url $domaine;;//Domaine
    $port 2082;//port 2082
    }

    $fsocket fsockopen($url,$port); //Ouverture via fsockopen
    if (!$fsocket//Si on arrive pas a lire
    {
    echo 
    "Impossible d'ouvrir le socket ... \n"//affiche une erreur
    exit; // On stop
    }

    // Encode le mot de passe et utilisateur
    $authstr $cputilisateur.":".$cpmotdepass;
    $pass base64_encode($authstr);

    // Le paramètres transmise en GET
    $params "dest=$ftpmode&email=$emailnotification&server=&user=&pass=&port=&rdir=&submit=Generate Backup";

    // Envoie un "POST" au cpanel
    fputs($fsocket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
    fputs($fsocket,"Host: $domaine\r\n");
    fputs($fsocket,"Authorization: Basic $pass\r\n");
    fputs($fsocket,"Connection: Close\r\n");
    fputs($fsocket,"\r\n");

    // Recois la réponce
    while (!feof($fsocket)) {
    $response fgets($fsocket,4096); //Reçois ligne par ligne
    if ($test//Si on est en mod Débug
    echo $response//On affiche
    }
    fclose($fsocket);

    //Antivirus CLAMAV !?
    if($antivirus==1)
    {
    $fsocket fsockopen($url,$port);
    if (!
    $fsocket) { echo "Impossible d'ouvrir le socket ... \n"; exit; }
    // Encode le mot de passe et utilisateur (Anti-Virus)
    $authstr $cputilisateur.":".$cpmotdepass;
    $pass base64_encode($authstr);
    // Envoie un "POST" au cpanel
    fputs($fsocket,"GET /frontend/".$skin."/clamavconnector/scanner.html?scanpath=home HTTP/1.0\r\n");
    fputs($fsocket,"Host: $domaine\r\n");
    fputs($fsocket,"Authorization: Basic $pass\r\n");
    fputs($fsocket,"Connection: Close\r\n");
    fputs($fsocket,"\r\n");
    // Reçois la réponse
    while (!feof($fsocket)) {
    $response fgets($fsocket,4096);
    if (
    $test) echo $response;
    }
    fclose($fsocket);
    }

    // Supprime les vielle sauvegarde (X jours)
    foreach (glob("*.tar.gz") as $filename) { //Pour tout les *.tar.gz qui se trouve dans le /
    if ((time() - filemtime($filename) -->= $jours*86400)) //86400sec = 1 jour
    unlink("$filename"); // on le supprime
    }
    ?>
    et en tache cron je met : php -q /home/garocado/cpanel_backup.php
    or cela ne fonctionne pas j'ai essayer plusieurs modif du domaine en mettant garocado.fr mais rien n'y fait .
    je reçoit toujours un mail avec le code du script et aucun backup de créer dans mon server . merci de me dire ce qui ne va pas .

    merci à tous pour votre aide
     
  2. vincent

    vincent New Member

    remplace $test = 1; par $test = 0;
     
  3. pierre_kuhn

    pierre_kuhn New Member

    Bonjour Vincent

    Oui cela pourrais le faire tourner mais il faut savoir que nous avons des backup et que ce la prendrait de la place sur votre plan pour rien.
    Si quelqu'un veut le faire obligatoirement, il peut tester mais bon ah quoi cela sert.
    Surtout sur 60 jours, faut du serveur ...
     
  4. David77

    David77 Member

    J'ai un script similaire qui fonctionne du feu de dieu, mais le mien envoi le backup sur un autre FTP pour pas gacher de la place...
    Et moi je les conserve quelques jours, 60 jours c'est peut être trop non?

    Dans ton script ton appel php est étrange : "<!--?php " ça ne serait pas plutot "<?php "?

    Et aprés est ce que le chemin mit dans la tache cron correspond à l'endroit où se trouve ton fichier php?
    Si tu mets "php -q /home/garocado/cpanel_backup.php" cela veut dire que ton fichier de sauvegarde "cpanel_backup.php" se trouve à la racine de ton compte, la liste de fichier avant le "public_html".
     
  5. vincent

    vincent New Member

    "Oui si tu as rien de spécial a faire ( genre envoyer les BackUp vers un autre site) laisse faire PH qui lui a le R1SOFT
     
  6. pierre_kuhn

    pierre_kuhn New Member

    On est tombé d'accords avec lui, il n fait pas sont backup.
    David, tu pourrais faire un tuto avec ton code ?
     
  7. David77

    David77 Member

    Avec ce code ta sauvegarde sera créée sur ton compte PlanetHoster, puis une fois qu'elle sera complète elle sera uploadée sur le FTP que tu auras configuré au début du script, et quand ce sera fini elle sera effacé de ton compte sur PH.
    Ainsi tu ne satures pas ton compte PH, et tu as une sauvegarde ailleurs, dans un autre panier, car comme le dit le dicton : "il ne faut pas mettre tous ses oeufs...."

    PHP:
    <?php

    // Info pour le FTP distant avant d'y mettre les backups
    $ftpuser "xxxxxx"// Utilisateur du ftp distant
    $ftppass "xxxxxx"// Password de l'utilisateur
    $ftphost ""// hostname du ftp
    $ftpmode "passiveftp"// FTP mode ("ftp" for active, "passiveftp" for passive)
    $ftpport "21";

    // Envoi du mail quand la procédure de fullbackup est finie
    $notifyemail "xxxxxxxx"// Adresse email sur laquelle sera envoyée la notification une fois le backup complété

    //ajustement de la date par rapport au serveur car moi je les classe par date
    $jour  mktime(000date("m"), date("d"), date("Y"));
    $date date("d-m-Y",$jour);
    $date ''.$date.'';

    //informations de ton compte cPanel
    $cpuser 'xxxxx';//login du cPanel
    $cppass 'xxxxxx';//mot de passe du cPanel
    $domain 'xxxxxx.com';//mettre le domaine concerné (domaine principal)
    $skin "PlanetHoster"// mettre le nom du skin utilisé par le cPanel


    //************************************CREATION DOSSIER DE SAUVEGARDE******************************************
    $ftp ftp_connect("$ftphost"); // On prépare la connexion
    ftp_login($ftp,"$ftpuser","$ftppass"); // On se connecte au serveur
    @ftp_mkdir ($ftp,"$date"); // Création du dossier. (chemin depuis la racine du serveur)
    ftp_quit ($ftp); // On se déconnecte du serveur
    //************************************FIN CREATION DOSSIER DE SAUVEGARDE****************************************                  

    $dossier ''.$date.'/';    
    $ftpdir $dossier// dossier de destination sur le FTP distant dans lequel nous allons sauvegarder le fullbackup en cours

    // Mode Ssl
    $secure 2// 1 oui 2 non vaut mieux oui

    // Debug pour le cron job mettre 1 pour conserver une trace sinon 2
    $debug 2;
    // fin initialisation varibles pour le full backup


    // connexion ssl activé
    if ($secure == '1'
    {
        
    $url "ssl://".$domain;
        
    $port 2083;
        
    // sinon connexion non sécurisé
    } else 
    {
        
    $url $domain;
        
    $port 2082;
    }

    // ouverture du socket
     
    $socket fsockopen($url,$port);
    if (!
    $socket) { echo "Failed to open socket connection... Bailing out!\n"; exit; }

    // re encodage de l'anthentification
    $authstr $cpuser.":".$cppass;
    $pass base64_encode($authstr);
    $params "dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&port=$ftpport&rdir=$ftpdir&submit=Generate Backup";               

    // On passe les commandes post au cpanel
    fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
    fputs($socket,"Host: $domain\r\n");
    fputs($socket,"Authorization: Basic $pass\r\n");
    fputs($socket,"Connection: Close\r\n");
    fputs($socket,"\r\n");

    // Recupération des réponse venant du cPanel ( mettre $debug sur 1 c mieux )
    while (!feof($socket)) 
    {
        
    $response fgets($socket,4096);
        if (
    $debug == '1')
        { 
            echo 
    $response;
        }
    }

    fclose($socket);
                  
    echo 
    'Sauvegarde du compte dans le dossier : '.$dossier.'';                  

    ?>
    Par exemple enregistrer ce code dans le fichier "backup.php", et mettre ce fichier à la racine du
    FTP.
    Dans ce cas l'appel dans la tache cron se fera comme ceci :
    Code:
    php -q /home/MONCOMPTE/backup.php
    Si on le met dans le public_html, l'appel se fera ainsi :
    Code:
    php -q /home/MONCOMPTE/public_html/backup.php
     
    Dernière édition: Aou 20, 2012
  8. ali59a

    ali59a New Member

    Bonjour à tous !

    Merci @David77 pour ce petit bout de code très utile qui permet de sauvegarder le contenu cPanel.

    Cependant, j'aimerais savoir si c'est possible juste de sauvegarder certains dossiers (mySql par exemple) et pas tous le contenu.

    Merci d'avance pour la réponse.

    Ali.
     

Partager cette page