Accueil > Forum > > > > Compresser un dossier avec ces sous dossiers
Compresser un dossier avec ces sous dossiers
mercredi 10 août 2005 à 12:54:26 |
Compresser un dossier avec ces sous dossiers

Fran6web
|
Bonjour,
j'ai trouvé sur le site un script vraiment pas mal permettant de faire
un backup de certains dossiers du serveur dans un fichier ZIP (
http://www.phpcs.com/codes/SCRIPT-DE-SAUVEGARDE-AUTOMATIQUE-DES-FICHIERS-RECENEMENT-POSES-SUR-VOTRE-SERVEUR/32805.aspx
). Mais arrivé au derniers dossier, il me marque une première fois
cette erreur:
Fatal error: Allowed memory size of 12582912 bytes exhausted (tried to allocate 4352052 bytes) in /web/htdocs/www.mm2x.com/home/mmfc/pclzip.lib.php on line 2427
et quand je rafraichi la page j'ai cette erreur:
Fatal error: Allowed memory size of 12582912 bytes exhausted (tried to allocate 23148438 bytes) in /web/htdocs/www.mm2x.com/home/mmfc/sauvegarde_fichiers.php on line 69
Je vous donne le code de la page sauvegarde.php car je l'ai modifié sachant que mes dossiers ne sont pas les mêmes:
<?
/*
This script is made to synchronise a test server with a production server.
It takes all the file newly uploaded on a server since last execution and servs them in a zip file.
The zip file contains the tree structure of the file. So you just need to unzip the file on your test server
Please think to correctly chmod your $archive_name path
*/
// Name of your archive file :
$archive_name=mktime().'.rar';
// path to archive : (relative path is better but absolute is also possible)
$tab_path_to_arch=array(
'../mmfc/');
// <Read the date of last archive session>
$saved_file = fopen('sauvegarde.cf','r');
$LIMIT_DATE=fread($saved_file,filesize ('sauvegarde.cf'));
fclose($saved_file);
// </Read the date of last archive session>
// Defines is better than global or parameter in function
define('_LIMIT_DATE',$LIMIT_DATE);
// Set the next save date until now.
// IMPORTANT TO DO THIS BEFORE STARTING SAVING
$LIMIT_DATE_FOR_NEXT_TIME=mktime()-3600; // security of one hour for the fun
// user information
echo 'Save new files since :'.date('d/m/y - h:i',$LIMIT_DATE).'<br />';
echo 'The archive file will be created as : '.$archive_name.'<br />';
// <Search the file to archive>
$tab_files_to_arch=array('');
foreach($tab_path_to_arch as $lcl_root){
list_dir($lcl_root,$tab_files_to_arch);
echo '<br />..........................<br />';
}
// </Search the file to archive>
// <make the archive file>
if (sizeof($tab_files_to_arch)==1) die ('Nothing new today. Exiting');
require('pclzip.lib.php');
$archive = new PclZip($archive_name) or die ("FAUTE initialisation de l'archive");
$archive -> create($tab_files_to_arch) or die ("FAUTE creation archive");
// </make the archive file>
// <save the date for next archive session>
$save_file = fopen('sauvegarde.cf','w');
fwrite($save_file,$LIMIT_DATE_FOR_NEXT_TIME);
fclose($save_file);
// </save the date for next archive session>
// <finishing the script>
$size=round(filesize($archive_name)/1024,2);
echo '
<br />
<a href="'.$archive_name.'">Download the archive file ('.$size.'Ko)</a>';
// </finishing the script>
// tests the date of a file and adds it to the table if needed
// path : path and name of the file
// file : file name (just for display)
// tableau : address param containing a list of files to compute
// returns none : the table will contain all infos
function test_date($path,$file,&$tableau){
// echo 'file to test : '.$file;
$theone=file($path);
if (filemtime($path) > _LIMIT_DATE) {
$tableau[]=$path;
echo $file.' ';
}
return;
}
// Lists the file of a path (recursive method)
// path : path to scann
// tableau : address param containing a list of files to compute
// returns none : the table will contain all infos
function list_dir ($path,&$tableau){
if ($dir = @opendir($path)) {
echo '<b>'.$path.'</b><br />';
while($file = readdir($dir)) {
if ($file !="." && $file != "..") {
$path_file=str_replace($_SERVER['DOCUMENT_ROOT'],"",$path);
$path_file=str_replace("/","\\",$path_file);
if (is_dir($path."/".$file)) { list_dir
($path.'/'.$file, $tableau);}
else { test_date($path.'/'.$file,$file,$tableau); }
}
}
closedir($dir);
} else {
echo $path.' isn\'t dir;';
}
return;
}
?>
J'ai regardé les différents façon de pouvoir corriger ce problème comme par exemple:
<?
//valeur initiale
echo "get_cfg_var(memory_limit) = ".@get_cfg_var('memory_limit')."<br />";
echo "ini_get(memory_limit) = ".@ini_get('memory_limit')."<br />";
//modification
@ini_set("memory_limit",'18M');
// on tente d'allouer 18 M
//modification prise en compte ?
echo "get_cfg_var(memory_limit) = ".@get_cfg_var('memory_limit')."<br />";
echo "ini_get(memory_limit) = ".@ini_get('memory_limit')."<br />";
// on verifie si l'allocation de 18 M a pu etre possible sur le serveur
?>
Mais la fonction ini_set() semble être désactivé.
Donc si le zip me prend trop de ressource, je me suis dis qu'il valait
mieux y mettre en gz grâce à la ZLIB mais je ne sais pas du tout
comment ça fonctionne. Merci de m'aider
|
|
mercredi 10 août 2005 à 14:05:45 |
Re : Compresser un dossier avec ces sous dossiers

GRenard
|
Le mieux c'est de contacter l'auteur de la source voir ce qu'il peut
faire parce que un problème de mémoire tu peux pas trouver ca direct
c'est à quelle ligne... Le script PHP va s'arrêter à la ligne où il est
rendu lorsqu'il n'y a plus de mémoire...
Tu ne pourras certainement pas allouer plus que 8M par défaut, disons que c'est toujours bloqué... Cherchez, Essayez et Testez avant de Poser une question ! [ Lien ]
|
|
mercredi 10 août 2005 à 14:50:02 |
Re : Compresser un dossier avec ces sous dossiers

Anthomicro
|
Salut,
tu ne pourras pas vraiment faire de sauvegarde de gros dossiers ou de
fichiers qui dépassent la taille allouée par PHP, tu peux par contre
passer par FTP et faire des sauvegardes semi-automatiques, lorsque tu
cliques sur un lien de ton site tu mets un serveur FTP chez toi qui
rapatrie les fichiers sur le FTP distant, par exemple.
|
|
mercredi 10 août 2005 à 15:58:21 |
Re : Compresser un dossier avec ces sous dossiers

Fran6web
|
Le soucis c'est que j'ai pas accée au FTP! J'ai seulement un script php pour mettre des fichiers.
Et puis l'auteur de la librairie est un anglais donc...
|
|
mercredi 10 août 2005 à 16:32:04 |
Re : Compresser un dossier avec ces sous dossiers
|
mercredi 10 août 2005 à 16:40:44 |
Re : Compresser un dossier avec ces sous dossiers

Fran6web
|
Sinon si je bois ce "bouillon" pas très bon lol!
Il n'y aurai pas un moyen que le script évite le dossier qui me pose ce problème pour que le reste s'enregistre normalement?
|
|
mercredi 10 août 2005 à 16:49:13 |
Re : Compresser un dossier avec ces sous dossiers

Anthomicro
|
Si si tu scannes la taille totale des fichiers du dossier, avec une fonction récursive ça peut le faire :-)
|
|
mercredi 10 août 2005 à 16:54:56 |
Re : Compresser un dossier avec ces sous dossiers

Fran6web
|
Mais malheureusement je ne sais pas ou y placer!
|
|
mercredi 10 août 2005 à 16:58:58 |
Re : Compresser un dossier avec ces sous dossiers
|
mercredi 10 août 2005 à 17:07:00 |
Re : Compresser un dossier avec ces sous dossiers

Fran6web
|
En faite je ne sais pas ou placer le code pour éviter le dossier qui me pose problème!
|
|
Cette discussion est classée dans : file, to, path, archive, limit
Répondre à ce message
Sujets en rapport avec ce message
pb ajout photo [ par joebuz ]
qu'est-ce que ca veut dire :Warning: move_uploaded_file(photos/membres/59.jpg): failed to open stream: No such file or directory in /home.2/waterpola/
Récuperer le poid d'un repertoire [ par setasan9 ]
Bonsoir,J'ai un petit soucis. Je doit récuperer la taille d'un répertoire pour limiter l'upload de fichier.Cependant, que ce soit avec ma fonction ou
Lister contenu d'un repertoire avec tailles fichiers et dossiers [ par harmonyk ]
Bonjour à tous ! J'ai codé il n'y a pas très longtemps ce script me permettant d'afficher le contenu d'un répertoire (ici $path) en indiquant pour cha
problème avec substr !! [ par fredo35m ]
pourquoi lorsque je mets ça, ça ne marche pas ??je souhaite juse récupérer le nom du fichier sans extension ni rien (=fichier)il me semble que c'est l
creer un compteur [ par mike501 ]
bonjour, je vien de trouver une galerie a mon gout mais le souci c est que les image ce mette toute sur la meme page estce que quelq un pourrai m aide
creer un compteur sur gallerie [ par mike501 ]
bonjour, je vien de trouver une galerie a mon gout mais le souci c est que les image ce mette toute sur la meme page estce que quelq un pourrai m aide
creer un compteur [ par mike501 ]
bonjour, je vien de trouver une galerie a mon gout mais le souci c est que les image ce mette toute sur la meme page estce que quelq un pourrai m aide
Pb chemin de longueur superieure à 255 caractères [ par kohntark ]
Salut, Je souhaite lister un répertoire (ou une unité) afin d'appliquer un traitement à certains types de fichiers. Le script s'execute en CLI sous w
Problème de démarrage de MySQL [ par yascasa ]
Salut à vous tous.Mon broblème est le suivant:J'ai instalé la version EasyPHP3.0.Jusqu'ici tout marche bien.Mais quand je veux démarrer MySQL une erre
modifier un code sur une gallerie [ par mike501 ]
bonjour, je vien de trouver une galerie a mon gout mais le souci c est que les image ce mette toute sur la meme page estce que quelq un pourrai m aide
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo GOOGLE MAPGOOGLE MAP par fatmanajjar
Cliquez pour lire la suite par fatmanajjar
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|