# apt-get install sqlite3
# apt-get install libclass-dbi-sqlite-perl
Como hay que convertir la DB de sqlite2 a sqlite3 se instala tambien el paquete
# apt-get install sqlite
Luego se ejecuta de la siguiente manera
# sqlite DBv2 .dump | sqlite3 DBv3
# file DBv2 DBv3
DBv3: SQLite 3.x database
DBv2: SQLite 2.x database
Esto tambien puede evitarse si en la versión de sqlite2 se lanzan comandos desde bash o shell, ya que los acepta, vr.g.
# sqlite DBv2 "SELECT * FROM tabla WHERE campo_id=2 " >> archivo.txt
...
Despliega datos
...
A continuación dejo el script de perl que sirve para la migración o bien descargarlo aquí
********************
#!/usr/bin/perl -w
# Este script extrae el address book de cada usuario de roundcubemail # usando
# sqlite3 como base de datos.
# Autor: Jaime Cabrera Letona
# Email: jaimeco at usac.edu.gt
# Versión: 1.0
# Se saca una copia de /etc/shadow para trabajar en ella sobre un #directorio aparte.
open (SHADOW,"
while ($linea = )
{
chomp($linea);
@usuario=split(/\:/,$linea);
$user_sq= `sqlite3 rjaimeco3 "SELECT user_id FROM users WHERE username='$usuario[0]'"`;
chomp($user_sq);
$contact_user_sq=`sqlite3 rjaimeco3 "SELECT * FROM contacts WHERE user_id='$user_sq'"`;
open (DIRE,">>$usuario[0]_direcciones_sq.txt");
print DIRE "$contact_user_sq";
#print $contact_user_sq;
close DIRE;
# creando el archivo para zimbra
open (DIREC,"<$usuario[0]_direcciones_sq.txt");
while ($linea_contact = )
{
chomp($linea_contact);
@nom_mail=split(/\|/,$linea_contact);
# A insertar en zimbra
$zimbranombres="'$nom_mail[5]','$nom_mail[4]','local://$nom_mail[5]','' \n";
print $zimbranombres;
open(ADDR,">>$usuario[0].csv");
print ADDR "$zimbranombres";
print $zimbranombres;
}
close (DIREC);
$borrar="rm *.txt";
system($borrar);
}
exit 0;
********************
Con esto obtenemos un conjuunto de archivos CSV en del tipo user_shadow.csv el cual o bien le damos una copia a cada usuario o bien se los enviamos al correo vía otro script de perl.
Con esto obtenemos un conjuunto de archivos CSV en del tipo user_shadow.csv el cual o bien le damos una copia a cada usuario o bien se los enviamos al correo vía otro script de perl.
0 comentarios:
Publicar un comentario en la entrada