21 avril 2013

Sauvegarde du CPanel automatiquement via une tache CRON

Beaucoup de clients ne sauvegardaient pas leurs comptes et se retrouvais dans backup… Et comme vous le savez… quand on se fait hacker son Joomela, car on a désactivé mod_security… on a bien besoin d’une sauvegarde bien fraiche !
Bon je vais vous montrer en quelques étapes comment sa fonctionne, c’est vraiment très simple d’utilisation.
#################################################################################

  1. !--?php  
  2.   
  3. // ***************** Configuration *****************  
  4.   
  5. // Information du CPANEL  
  6. $cputilisateur = "login"// Nom d'utilisateur du CPanel  
  7. $cpmotdepass = "password"// Mot de passe de CPanel  
  8. $domaine = "requin.planethoster.net"// Le serveur Planethoster (remplacer "requin") ou IP  
  9. $skin = "x3"// le thème utilisé (Sa sert a rien mais il en faut un !  
  10.   
  11. // Information sur la sauvegarde  
  12. $ftpmode = "homedir"// FTP mode ("homedir" pour une complête, "ftp" for active, "passiveftp" for passive)  
  13.   
  14. //Scan antivirus (1=Activé || 0=Désactivé)  
  15. $antivirus = 1;  
  16.   
  17. //Nombre de jours pendant la quel sera stocké la sauvegarde  
  18. $jours=60;  
  19.   
  20. // Notification information  
  21. $emailnotification = "webmaster AT avis-planethoster.com"// E mail de notification  
  22.   
  23. // Sécurisé ou non avec httpS  
  24. $securise = 1; // mettre a 1 pour SSL , sinon utilise http  
  25.   
  26. // permet de vérifier si le script fonctionne bien. un DE-BUG  
  27. $test = 1;  
  28.   
  29.   
  30. // ***************** Ne pas toucher!! *****************  
  31.   
  32. if ($securise) {                //Si sécurisé  
  33.    $url = "ssl://".$domaine;//Domaine  
  34.    $port = 2083; //port 2083  
  35. else {                        //Sinon  
  36.    $url = $domaine;;//Domaine  
  37.    $port = 2082;//port 2082  
  38. }  
  39.   
  40. $fsocket = fsockopen($url,$port); //Ouverture via fsockopen  
  41. if (!$fsocket//Si on arrive pas a lire  
  42. {   
  43.     echo "Impossible d'ouvrir le socket ... \n"//affiche une erreur  
  44.     exit// On stop  
  45. }  
  46.   
  47. // Encode le mot de passe et utilisateur  
  48. $authstr = $cputilisateur.":".$cpmotdepass;  
  49. $pass = base64_encode($authstr);  
  50.   
  51. // Le paramètres transmise en GET  
  52. $params = "dest=$ftpmode&email=$emailnotification&server=&user=&pass=&port=&rdir=&submit=Generate Backup";  
  53.   
  54. // Envoie un "POST" au cpanel  
  55. fputs($fsocket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");  
  56. fputs($fsocket,"Host: $domaine\r\n");  
  57. fputs($fsocket,"Authorization: Basic $pass\r\n");  
  58. fputs($fsocket,"Connection: Close\r\n");  
  59. fputs($fsocket,"\r\n");  
  60.   
  61. // Recois la réponce  
  62. while (!feof($fsocket)) {  
  63.   $response = fgets($fsocket,4096); //Reçois ligne par ligne  
  64.   if ($test//Si on est en mod Débug  
  65.     echo $response//On affiche  
  66. }  
  67. fclose($fsocket);  
  68.   
  69. //Antivirus CLAMAV !?  
  70. if($antivirus==1)  
  71. {  
  72.     $fsocket = fsockopen($url,$port);  
  73.     if (!$fsocket) { echo "Impossible d'ouvrir le socket ... \n"exit; }  
  74.     // Encode le mot de passe et utilisateur (Anti-Virus)  
  75.     $authstr = $cputilisateur.":".$cpmotdepass;  
  76.     $pass = base64_encode($authstr);  
  77.     // Envoie un "POST" au cpanel  
  78.     fputs($fsocket,"GET /frontend/".$skin."/clamavconnector/scanner.html?scanpath=home HTTP/1.0\r\n");  
  79.     fputs($fsocket,"Host: $domaine\r\n");  
  80.     fputs($fsocket,"Authorization: Basic $pass\r\n");  
  81.     fputs($fsocket,"Connection: Close\r\n");  
  82.     fputs($fsocket,"\r\n");  
  83.     // Reçois la réponse  
  84.     while (!feof($fsocket)) {  
  85.       $response = fgets($fsocket,4096);  
  86.       if ($testecho $response;  
  87.     }  
  88.     fclose($fsocket);  
  89. }  
  90.   
  91. // Supprime les vielle sauvegarde (X jours)  
  92. foreach (glob("*.tar.gz"as $filename) { //Pour tout les *.tar.gz qui se trouve dans le /  
  93.     if ((time() - filemtime($filename) -->= $jours*86400)) //86400sec = 1 jour  
  94.         unlink("$filename"); // on le supprime  
  95. }  
  96. ?>
  97. ############################################################################ 

  98.  
Placer le cpanel_backup.php dans la racine de votre FTP (/)
Allez sur https://VOTRE-IP:2083/ -> Avancé -> Tâches Cron -> Ajouter une nouvelle tâche Cron -> Une fois par jour
Et la commande:
php -q /home/USERNAME/cpanel_backup.php
     

Aucun commentaire :

Enregistrer un commentaire