Jump to content

[Tuto] Automatique Full Backup Cpanel Fichiers + Base sans module et gratuit


Creastyle

Recommended Posts

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 by Creastyle (see edit history)
Link to comment
Share on other sites

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

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

  • 9 months later...
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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...