Sauvegarde ou archivage du dossier data
brica
Member
Bonjour,
Voici un script qui archive des répertoires, des sous-répertoires et leurs fichiers dans un fichier compressé. Bref, bien pratique pour zipper le dossier data de PluXML et le sauvegarder.
Il n'est pas extraordinaire, je n'ai fait que modifier un script existant sans copyright ni left. Il requiert la librairie de phpMyAdmin zip.lip.php (si vous le trouvez pas, alertez-moi) :
<?
echo('<ol>');
// Inclusion de la librairie zip.lib.php de phpMyAdmin (pensez à préciser le chemin)
require_once("zip.lib.php");
// Nom et chemin du fichier zip à créer
$fichier_zip = '../archive/archive.zip';
$zip= new zipfile;
// Indication du chemin du dossier à zipper
$path = '../data';
function zipDir($path,&$zip)
{
if (!is_dir($path)) return;
if (!($dh = @opendir($path)))
{
echo("<li>Une erreur s'est produite sur : ".$path."</li>");
return;
}
while ($file = readdir($dh))
{
if ($file == "." || $file == "..") continue; // dossiers . et ..
if (is_dir($path."/".$file))
{ // Récursivité
zipDir($path."/".$file,$zip,$i);
}
elseif (is_file($path."/".$file))
{ // Si c'est un fichier à ajouter au zip
$zip->addFile(file_get_contents($path."/".$file),$path."/".$file);
echo('<li>'.$path.'/'.$file.' <small><i>ajouté</i></small></li>');
}
}
}
zipDir($path,$zip);
// Récupération du contenu du zip dans la variable $filezipped
$filezipped=$zip->file();
// Indication du chemin de la sauvegarde du/des dossier(s) zippé(s)
$open = fopen($fichier_zip, "w");
fwrite($open, $filezipped);
fclose($open);
echo('</ol>');
?>
<p>Télécharger la sauvegarde : <a href="../archive/archive.zip">archive.zip</a></p>
Bon, il y a de nombreuses améliorations à prévoir :
- inclusion dans un plugin PluXML
- ajout automatique de la date dans le fichier du type archive-AAAA-MM-JJ-HHMM.zip
- envoi optionnel par courriel
- etc.
Mais en l'état, c'est bien pratique.
Bonne après-midi,
Brica.
Voici un script qui archive des répertoires, des sous-répertoires et leurs fichiers dans un fichier compressé. Bref, bien pratique pour zipper le dossier data de PluXML et le sauvegarder.
Il n'est pas extraordinaire, je n'ai fait que modifier un script existant sans copyright ni left. Il requiert la librairie de phpMyAdmin zip.lip.php (si vous le trouvez pas, alertez-moi) :
<?
echo('<ol>');
// Inclusion de la librairie zip.lib.php de phpMyAdmin (pensez à préciser le chemin)
require_once("zip.lib.php");
// Nom et chemin du fichier zip à créer
$fichier_zip = '../archive/archive.zip';
$zip= new zipfile;
// Indication du chemin du dossier à zipper
$path = '../data';
function zipDir($path,&$zip)
{
if (!is_dir($path)) return;
if (!($dh = @opendir($path)))
{
echo("<li>Une erreur s'est produite sur : ".$path."</li>");
return;
}
while ($file = readdir($dh))
{
if ($file == "." || $file == "..") continue; // dossiers . et ..
if (is_dir($path."/".$file))
{ // Récursivité
zipDir($path."/".$file,$zip,$i);
}
elseif (is_file($path."/".$file))
{ // Si c'est un fichier à ajouter au zip
$zip->addFile(file_get_contents($path."/".$file),$path."/".$file);
echo('<li>'.$path.'/'.$file.' <small><i>ajouté</i></small></li>');
}
}
}
zipDir($path,$zip);
// Récupération du contenu du zip dans la variable $filezipped
$filezipped=$zip->file();
// Indication du chemin de la sauvegarde du/des dossier(s) zippé(s)
$open = fopen($fichier_zip, "w");
fwrite($open, $filezipped);
fclose($open);
echo('</ol>');
?>
<p>Télécharger la sauvegarde : <a href="../archive/archive.zip">archive.zip</a></p>
Bon, il y a de nombreuses améliorations à prévoir :
- inclusion dans un plugin PluXML
- ajout automatique de la date dans le fichier du type archive-AAAA-MM-JJ-HHMM.zip
- envoi optionnel par courriel
- etc.
Mais en l'état, c'est bien pratique.
Bonne après-midi,
Brica.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses