Creastyle Posted January 27, 2015 Share Posted January 27, 2015 (edited) Bonjour à tous, Je ne sais pas si ça à déja été proposé mais voici un petit tuto est basé sur ce que j'ai pu glané ici et là sur la toile et qui fonctionne . Ce tuto ne fonctionne que si vous avez accès à un Cpanel.. Personnellement je suis hébergé chez planet hoster il se peut que ce script ne fonctionne que chez eux ou qu'il faille l'adapter en fonction de votre hébergeur, toutes les suggestion et améliorations sont les bienvenues Ce script à pour but de sauvegarder l'ensemble de votre cpanel donc vos fichiers et vos bases de données et le gros avantage c'est que vous ne surchargez pas votre prestashop avec un module supplémentaire d'autres part c'est totalement gratuit Pour sauvegarder tous les dossiers et votre base de données sans module c'est très simple : 1) commencez par ouvrir votre blocnote (de préférence notepad +) et copiez le code ci-dessous dedans. 2) Sauvegardez le fichier avec comme extension backup.php de préférence ajoutez une serie de chifre devant histoire de sécuriser un peu ex: 84396backup.php 3) Renseignez les 4 premières ligne du code et également la ligne : // Durée de conservation de la sauvegarde sur le FTP (pensez à vérifier la taille de votre sauvegarde et paramétrer le nombre de sauvegarde conservé en fonction de la taille disponible sur votre disque. 4) Créez un dossier dans /home/utilisateur que vous pouvez nommer par exemple BACKUP835469 5) Placer le fichier backup.php dans ce dossier 6) Créez une Tâche Cron via votre Cpanel avec comme ligne de commande en remplaçant utilisateur par votre nom d'utilisateur : php -q /home/utilisateur/BACKUP835469/84396backup.php Pensez à indiquez dans la tâche cron la fréquence des backup Une fois le backup effectué le fichier zip se trouvera dans /home/utilisateur code : <?php // ***************** CONFIGURATION ***************** // Information du cPanel $cputilisateur = "utilisateur"; // Nom d'utilisateur du cPanel $cpmotdepass = "motdepasse"; // Mot de passe du cPanel $domaine = "mondomaine.fr"; // Le nom de domaine du site Web (sans http et www) $skin = "x3"; // Le thème d'affichage utilisé par cPanel (obligatoire) // Information sur la sauvegarde $ftpmode = "homedir"; // FTP mode ("homedir" pour une complète, "ftp" pour active, "passiveftp" pour passive) // Scan antivirus (1 = Activé || 0 = Désactivé) $antivirus = 0; // Durée de conservation de la sauvegarde sur le FTP $jours=8; // Recevoir un mail de notification une fois la sauvegarde prête $emailnotification = "[email protected]"; // Sécurisé ou non avec https $securise = 1; // Indiquez 1 pour SSL // Vérification du bon fonctionnement du script $test = 0; // ***************** A NE PAS MODIFIER ***************** if ($securise) { // Si sécurisé $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ètre transmis 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"); // Reçoit la réponce while (!feof($fsocket)) { $response = fgets($fsocket,4096); // Reçoit ligne par ligne if ($test) // Si on est en mode debug 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çoit la réponse while (!feof($fsocket)) { $response = fgets($fsocket,4096); if ($test) echo $response; } fclose($fsocket); } // Supprime les vielles sauvegardes (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"); // Suppression } ?> Edited January 27, 2015 by Creastyle (see edit history) Link to comment Share on other sites More sharing options...
vince0 Posted January 31, 2015 Share Posted January 31, 2015 Salut et merci pour la contribution !!! Pour l'instant j'utilise un module de sauvegarde couplé avec le module tache cron, mais si je peux alléger prestashop de ces deux là, ce ne sera pas plus mal ... Par contre avant de faire un test, j'aimerai savoir quel type d'hébergement tu as sur planet hoster et ta version de prestashop, histoire d'être certain que cela fonctionne avec ma configuration Link to comment Share on other sites More sharing options...
Creastyle Posted January 31, 2015 Author Share Posted January 31, 2015 Hello j'utilise la version 1.6.0.9 de prestashop mais cela n'a aucune importance car c'est le cpanel au complet qui est sauvegardé et ce script n'interagit pas du tout avec prestashop car il faut le placer dans un dossier parent de public_html. Je suis sur un hébergement VPS . Link to comment Share on other sites More sharing options...
fredekac Posted November 17, 2015 Share Posted November 17, 2015 Bonjour Creastyle, Merci pour cette astuce J'ai un souci, je reçois cela avec la tâche CRON : backup.php: line 1: ?php: Aucun fichier ou dossier de ce type backup.php: line 3: = : commande introuvable backup.php: line 4: = : commande introuvable backup.php: line 5: = : commande introuvable backup.php: line 65: Caractère de fin de fichier (EOF) prématuré lors de la recherche du « ' » correspondant backup.php: line 92: Erreur de syntaxe : fin de fichier prématurée Pour les lignes 3, 4 et 5, ce sont les identifiants, mot de passe et domaine mais si je retire les "=", il me dit que ce sont les identifiants, mot de passe et domaine qui sont "commande introuvable" Qu'est-ce que je fait qui ne va pas ? Merci de votre aide ^^ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now