Foros del Web » Programando para Internet » PHP »

Zipeo muchos archivos servidor

Estas en el tema de Zipeo muchos archivos servidor en el foro de PHP en Foros del Web. Buenos días, amigos! Estoy haciendo un sistema de backup zipeando una carpeta que contiene más de 10.000 archivos de unos 70kb c/u en promedio. El ...
  #1 (permalink)  
Antiguo 09/10/2012, 06:37
 
Fecha de Ingreso: diciembre-2011
Ubicación: Villa Lugano
Mensajes: 86
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Zipeo muchos archivos servidor

Buenos días, amigos!
Estoy haciendo un sistema de backup zipeando una carpeta que contiene más de 10.000 archivos de unos 70kb c/u en promedio. El tema es que el script no termina de ejecutarse. Se crea el zip correctamente pero no continúa con la siguiente instrucción.
Ya he puesto en el inicio del script lo siguiente:

ini_set("memory_limit","40000000M");
ini_set('max_execution_time','3600');

El servidor está configurado así:

max_execution_time = 1200
safe_mode = off
memory_limit = 64M

Gracias!!
  #2 (permalink)  
Antiguo 09/10/2012, 07:02
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Zipeo muchos archivos servidor

la memria:limit es muy pobre al menos deberia tener 256mb que es lo standard.
igual ese no seria el problema.
mostranos el script que arma el zip, estoy seguro que hay que opitimizarlo
  #3 (permalink)  
Antiguo 09/10/2012, 07:09
 
Fecha de Ingreso: diciembre-2011
Ubicación: Villa Lugano
Mensajes: 86
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Zipeo muchos archivos servidor

Gracias Patriarka!
Voy a tener en cuenta lo de la memoria...
El script es el siguiente:

Código PHP:
function grabarCartas() {
    
// Vemos si existe el archivo zip. Si existe lo eliminamos.
    
$a file_exists("misBackups/backupMagic.zip");
    if(
$a) {
        
unlink("misBackups/backupMagic.zip");
    }
       
// nombre del archivo de la base de datos
    
$nombreArchivo "magic_bd.sql";
    
$zip = new ZipArchive();
    
$arch "misBackups/backupMagic.zip";    
    
// Leemos el directorio cartas
    
$conexDir opendir("../imagenes/cartas");
    
$elemento = array();
    while(
$file readdir($conexDir)) {
        if((
$file != '.') && ($file != '..')) {
                
$elemento[] = $file;
        }
    }    
    
closedir($conexDir);
    
// Agregamos las cartas al zip. 
    
if($zip->open($arch,ZIPARCHIVE::CREATE) === true) {
        
// Primero insertamos el archivo de la Base de Datos
        
$zip->addFile("misBackups/".$nombreArchivo$nombreArchivo);
        
$zip->addEmptyDir("cartas");
        for(
$i=0;$i<count($elemento);$i++) {
            
$zip->addFile("../imagenes/cartas/".$elemento[$i],"cartas/".$elemento[$i]);
        }
        
$zip->close();
                
// elimino el archivo de la base de datos
        
unlink("misBackups/".$nombreArchivo);
        return 
true;
    }
    else return 
false;


Muchas gracias!
  #4 (permalink)  
Antiguo 09/10/2012, 07:17
 
Fecha de Ingreso: diciembre-2011
Ubicación: Villa Lugano
Mensajes: 86
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Zipeo muchos archivos servidor

También, la página arroja resultado mucho antes de que termine el script....
  #5 (permalink)  
Antiguo 09/10/2012, 08:48
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Zipeo muchos archivos servidor

ok y te devuelve algun error?
lo que tendrias que hacer idealmente que se ejecute en un cron por consola, hai no vas a tener estos problemas. sino otra forma es formar varios archivos zip e ir liberando memoria y al final conprimir esos zip en uno solo.
en resumen lo que te falta es optimizar el procesamiento de la gran carga de archivos.
  #6 (permalink)  
Antiguo 09/10/2012, 09:17
 
Fecha de Ingreso: diciembre-2011
Ubicación: Villa Lugano
Mensajes: 86
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Zipeo muchos archivos servidor

ah! ok. El proceso es llamado desde una página que a su vez es llamada desde ajax. No me tira ningún error. Me da como success pero sigue comprimiendo (lo veo conectado al servidor desde Filezilla).
Con respecto a formar varios zip, podría armar archivos de a 100Mb por ejemplo? No pasa nada con hacer tantos zip->close() y zip->open() tan seguido?
Muchas gracias por la respuesta. Es muy valioso para mí.-
Saludos cordiales
  #7 (permalink)  
Antiguo 09/10/2012, 12:23
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Zipeo muchos archivos servidor

Cita:
Iniciado por cnunez Ver Mensaje
ah! ok. El proceso es llamado desde una página que a su vez es llamada desde ajax. No me tira ningún error. Me da como success pero sigue comprimiendo (lo veo conectado al servidor desde Filezilla).
Con respecto a formar varios zip, podría armar archivos de a 100Mb por ejemplo? No pasa nada con hacer tantos zip->close() y zip->open() tan seguido?
Muchas gracias por la respuesta. Es muy valioso para mí.-
Saludos cordiales
no hay ningun problema y ademas es lo correcto. si es por ajax no importa, lo que importa es q vayas liberando memoria cada cierto bloque de informacion
  #8 (permalink)  
Antiguo 09/10/2012, 12:38
 
Fecha de Ingreso: diciembre-2011
Ubicación: Villa Lugano
Mensajes: 86
Antigüedad: 12 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Zipeo muchos archivos servidor

buenísimo! muchas gracias! lo voy a probar...
saludos cordiales
__________________
Persevera y triunfarás...
----------------------------------------------------
http://www.cyberargsistemas.com.ar

Etiquetas: muchos, servidor, zipeo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:44.