WIKI LWS - L'hébergeur Web accessible à tous WIKI LWS - L'hébergeur Web accessible à tous

Réaliser une sauvegarde de ISPConfig via FTP

Cette documentation va vous montrer comment réaliser une sauvegarde de vos sites et bases de données depuis votre VPS sous ISPcondfig vers votre formule de sauvegarde Pydio.
Dans une première partie nous verrons comment faire cela manuellement, dans une seconde comment automatiser le tout via une tâche CRON.
Finalement nous verrons comment restaurer ces sauvegardes.


Etape 1 : Effectuer la sauvegarde manuellement

A. Copie de votre site sur votre pc

Une fois connecté en FTP sur votre site (nous ne reviendrons pas sur cette procédure ici, mais vous pouvez facilement la retrouver sur notre wiki), faites un clic droit sur le répertoire web, puis Télécharger. Faites attention à l'endroit où vous copiez sur votre PC, votre site risque de pendre beaucoup de place.

B. Export de votre base de données

Connectez vous à phpmyadmin, sélectionnez la base à sauvegarder (ici prestashop), puis cliquez sur Exporter.


Gardez les paramètres par défaut et cliquez sur Exécuter. Cela va lancer le téléchargement d'une sauvegarde de votre base.

C. Copie vers le serveur Pydio

Connectez vous à votre compte Pydio avec Filezilla (http://wiki.lws-hosting.com/doku.php/utiliser pydio via ftp#.U0PJNhApI6I),
sélectionnez votre répertoire web et votre fichier .sql, clic droit et Envoyer.
Ici nous avons créé un répertoire sauvegarde_050414 sur le serveur Pydio.



Etape 2 : Automatiser la sauvegarde et conserver une semaine d'archive

A. Créer un script de sauvegarde

La première chose à faire est de créer un répertoire à la racine de votre site qui va contenir les sauvegardes de votre base de données (ici mesSauvegardes).


A l'interieur créez le fichier sauvegardes.php


Celui-ci devra contenir le code suivant :

<?php
// Données de connexion à la base de données
$MYSQLserveur = "localhost";
$MYSQLbdd = "base_de_donnees";
$MYSQLutilisateur = "utilisateur_base_de_donnees";
$MYSQLmotdepasse = "mot_de_passe_base_de_donnees";
 
// Données de connexion au serveur FTP
$FTPserveur = "cduser.backuplws.com";
$FTPutilisateur = "cduser";
$FTPmotdepasse = "mot_de_passe_pydio";
$FTPrepertoire = "repertoire_sauvegarde_pydio";

// Paramètres pour envoyer des alertes par mail.
$destinataire = "contact@monsite.fr"; <= Adresse mail destinee a recevoir les alertes du script
$sujet = "VPS-1234 - Sauvegarde monsite.fr"; <= Sujet du mail envoye
$nom = "user"; <= Nom de l'envoyeur
$source = "user@monsite.fr"; <= Compte email servant a envoyer le mail


// On précise le nom du ficher de log
$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"); 
$datefr = $jour[date("w")];
$log="sauvegarde_".$datefr.".log";
system("rm -f $log");
$f = fopen($log, 'a+');
fwrite($f, "## Sauvegarde - ".date('d-m-Y')."\n");


// On effectue la sauvegarde de la bdd
$command = "mysqldump --host=$MYSQLserveur --user=$MYSQLutilisateur --password=$MYSQLmotdepasse $MYSQLbdd > ".$MYSQLbdd."_".$datefr.".sql";
system($command,$retour);

if($retour!="0")
{
	fwrite($f, "Erreur pendant la sauvegarde de la base de donnees $MYSQLbdd. \n");
}
else
{
	fwrite($f, "Sauvegarde de la base de donnees $MYSQLbdd reussie. \n");
}


// On archive le site
$archive="sauvegarde_".$datefr;
system ("tar --numeric-owner -czf ".$archive.".tgz ../",$retour);
 
if($retour!="0")
{
	fwrite($f, "Erreur pendant la compression du site. \n");
}
else
{
	fwrite($f, "Compression du site reussie. \n");
}


// On effectue la sauvegarde en FTP vers le serveur Pydio
$connection = ftp_connect($FTPserveur);
$login = ftp_login($connection, $FTPutilisateur, $FTPmotdepasse);

if ($connection && $login)
{
        $d1 = dir(".");
        while($file = $d1->read())
        {
                if((eregi("tgz",$file))||(eregi("sql",$file)))
                {
                        if(@ftp_put($connection, $FTPrepertoire."".$file, $file, FTP_BINARY))
			{
				fwrite($f, "Copie FTP du fichier $file reussie. \n");
			}
			else
			{
				fwrite($f, "Erreur pendant la copie FTP du fichier $file. \n");
			}
                }
        }
}

ftp_close($connection);


// On affiche le  log a l'ecran et on l'envois par mail.
fwrite($f, "\n");
foreach(file($log) as $line_num => $line) {
	$mail_body.=$line;
	echo $line;
	echo "<br>";

}
$header = "From: ". $nom . " <" . $source . ">\r\n";
mail($destinataire, $sujet, $mail_body, $header);

fclose($f);


Modifiez celui-ci pour définir les paramètres d'accès à votre base de données et à votre compte Pydio.

// Données de connexion à la base de données
$MYSQLserveur = "localhost";
$MYSQLbdd = "base_de_donnees"; <= Nom de la base a sauvegarder
$MYSQLutilisateur = "utilisateur_base_de_donnees"; <= Utilisateur de la base a sauvegarder
$MYSQLmotdepasse = "mot_de_passe_base_de_donnees"; <= Mot de passe de la base a sauvegarder
 
// Données de connexion au serveur FTP
$FTPserveur = "cduser.backuplws.com"; <= Adresse de votre serveur Pydio
$FTPutilisateur = "cduser"; <= Utilisateur de votre serveur Pydio
$FTPmotdepasse = "mot_de_passe_pydio"; <= Mot de passe de votre serveur Pydio
$FTPrepertoire = "repertoire_sauvegarde_pydio"; <= Repertoire du serveur Pydio sur lequel envoyer les sauvegardes de votre site

// Paramètres pour envoyer des alertes par mail.
$destinataire = "contact@monsite.fr"; <= Adresse mail destinee a recevoir les alertes du script
$sujet = "VPS-1234 - Sauvegarde monsite.fr"; <= Sujet du mail envoye
$nom = "user"; <= Nom de l'envoyeur
$source = "user@monsite.fr"; <= Compte email servant a envoyer le mail


B. Créer une tâche CRON

Une fois le script créé, il ne reste plus qu'à l'éxécuter de façon automatique avec une tâche CRON.
Connectez vous à votre panel ISPconfig et rendez-vous dans la rubrique SitesTâches cron.


Ajoutez alors un nouveau Cron.
La syntaxe pour créer une telle tâche est décrite ici : http://wiki.lws-hosting.com/doku.php/comment creer une tache cron depuis mon panel ispconfig#.U06SCxApI6I
Ici nous allons créer une tâche qui s'executera tous les jours à 01h00 du matin.



Retour à la rubrique Pydio


Articles, vidéos et guides en lien avec cette rubrique

pydio_-_realiser_un_backup_de_ispconfig_via_ftp.txt · Dernière modification: 2014/08/06 08:45 par damien
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki