Germán Poó Caamaño wrote:

>El mié, 09-11-2005 a las 18:25 -0400, Jose Miguel Vidal Lavin escribió:
>  
>
>>Señores
>>
>>    Por fin tuve el tiempo y máquina nueva para migrar un server pop3 a 
>>imap con todos los chiches que traen y definitivamente es la mejor 
>>opción, el tema es que debo migrar las cuentas de correo que estan en 
>>pop3 hacia el imap y he usado fetchmail para leer las cuentas desde el 
>>server antiguo pero me deja los correos en un solo archivo 
>>/var/mail/usuario y como como la estructura de imap que seria 
>>/var/spool/cyrus/mail/letra/cuenta, tambien he probado con:
>>
>> cat usuario | formail +1 -ds maildrop -d usuario;
>>
>>pero el resultado es el mismo, he estado todo el dia entre rtfm y stfw y 
>>nada aun, no se como derivar esos correos a imap y no a pop3
>>alguna ayuda?
>>    
>>
>
>IMHO, no has encontrado información porque estas enfrentando (o quizás
>entendiendo) mal el problema.
>
>No estás migrando de POP3 a IMAP.  Los buzones de los usuarios pueden
>ser accedidos vía POP3 o IMAP, indistintamente.  La salvedad es que
>con POP3 sólo verán *un* buzón, no así carpetas; a la vez que tienen
>un conjunto más reducido de operaciones a realizar.
>
>Tanto UW-IMAP, cyrus, dovecot, etc. te proveen ambas funcionalidades.
>
>Luego, lo que estas haciendo es migrar de un sistema que almacena los
>buzones en formato mailbox a uno que lo hace en formato maildir (cyrus).
>Con la instrucción que indicas no estas logrando mucho, por lo mismo.
>En cyrus, cada mensaje es 1 archivo; y se requieren manejar mas
>comandos, como reconstruir la carpeta, actualizar la cuota, etc.
>
>Después de esta perorata, te sugiero leer:
>http://www.onid.orst.edu/docs/technical/cyrusmigration.shtml
>
>Los scripts debes ajustarlos a tus necesidades.  El que hace el
>trabajo sucio es migrate_user_mail.pl.  Básicamente toma un
>buzón, crea el usuario (cyrus maneja un espacio de usuarios
>distinto), crea un archivo con cada mensaje (usando formail
>y otros scripts), reconstruye los índices en cyrus y
>reconstruye la cuota.
>
>Por cierto, antes debes asegurarte que cyrus está bien
>instalado y funcionando correctamente.  Si no funciona,
>revisa la configuración de sasl; ahí casi siempre están
>los problemas, porque cyrus en sí no es complicado.
>
>  
>
se le agradece por el dato, el tema era tal cual lo decias, quieero 
cambiar el formato de almacenamiento de los mails, tengo ya sasl, cyrus 
y todos los demas sistemas configurados bien y funcionando asi que leeré 
atentamente ese doc para ver el tema de la migración y cambio de formato 
de almacenamiento.

de ahi les cuento si tuve algun drama

pd: andaba mas perdido que la revista de linux chilena ;)

saludos
From [EMAIL PROTECTED]  Thu Nov 10 13:03:38 2005
From: [EMAIL PROTECTED] (NYARLATHOTEP El Caos Reptante)
Date: Thu Nov 10 13:00:23 2005
Subject: OT: Subproceso hijo con modperl
Message-ID: <[EMAIL PROTECTED]>

Hola Lista...

He estado leyendo e informandome sobre como realizar un proceso hijo
llamado desde apache con mod_perl; bueno, la situacion actual es la siguiente:

1 Tengo un *.pm que se encarga de mostrar y generar la pagina, el cual
posee una subrutina que crea el proceso hijo
2 Tengo un script (llamado generador_archivos.pl con permisos 755
)que al ejecutarlo desde la bash funciona perfectamente,
utilizando y manipulando la base de datos y que a la vez escribe en un
archivo.

la subrutima del *.pm que crea el proceso hijo es la siguiente:

sub generar_info {

my $self = shift;
my $arg = "ACT" if param("ACT");
$arg = "CHB" if param("CHB");
$arg = "CHL" if param("CHL");
$arg = "INTER" if param("INTER");
$arg = "REENV" if param("REENV");
$arg = "REINT" if param("REINT");

warn "Generando INFO\n";
warn "Ejecutando /desa/my_site/bin/generador_archivos.pl $arg \n";

use strict;
use POSIX 'setsid';
use Apache::SubProcess;

my $r = Apache->request;

$SIG{CHLD} = 'IGNORE';
defined (my $kid = fork) or die "Cannot fork: $!\n";
if ($kid == 0) {

   warn "Preparando proceso hijo!\n";

   $r->cleanup_for_exec(); # untie the socket

   chdir '/' or die "Can't chdir to /: $!";
   open STDIN, '/dev/null/' or die "Can't read /dev/null: $!";
   open STDOUT, '>/dev/null' or die "Can't write /dev/null: $!";
   open STDERR, '>/tmp/log' or die "Can't write /dev/null: $!";
   setsid or die "Can't start a new session: $!";

   select STDERR;
   local $| = 1;

   #ejecutar script externo

   system "/desa/my_site/bin/generador_archivos.pl $arg" or die
"Ups! $!";

}
}

Pero que al momento de llamar al script generador_archivos.pl no sucede nada...

¿Alguna idea?

Gracias
--
No trate nunca de verificar una condición de error que no sepa manejar.

Reply via email to