[bcn-pm] DBI mysql dump

Alex Muntada alexmaalexm.org
Dma Oct 3 08:37:54 PDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

* Arnau Bria <arnauaemergetux.net>:
  [2006-09-28 12:53:12 +0200]

> la meva primera idea era tirar de system (), però no crec que
> posar les 3 comandes (dump, gzip, mail) en system sigui molt
> perl way (pot ser m'equivoco...).

Enlloc d'utilitzar el «system» de Perl, potser seria més fàcil
fer un script a sac, no?

$ mysqldump | uuenpipe | mail -s "dump: `date`" foobaraexample.com

Nota: millor emprar uuenpipe que gzip per evitar que la sortida
binària no compleix amb els estàndards de tipus MIME i SMTP.
A més, uuenpipe (uuencode sobre pipes) també comprimeix les
dades d'entrada.

> Així que pretenia fer-ho quant més perl possible, millor.

Si ho fas per gust, endavant.  Però complicar-se la vida
excessivament per fer-ho en Perl tampoc mereix la pena,
com ens va explicar en Mark Jason Dominus durant la seva
visita a Barcelona.

> on puc trobar la "llista" del possibles format que treu el dump?

Use the source, Luke!

http://search.cpan.org/src/ISTERIN/DBIx-Dump-0.04/Dump.pm
...
my %formats = (
	'excel' => $excel,
	'csv' => $csv,
	'iQuery' => $iQuery
);
...

> Que vol dir: EventHandler => \@handler)?

Pel que he vist també al codi, et permet manipular les dades
individuament abans de convertir-les al format de sortida.
Suposo que el que en facis, si és que cal fer-hi res, és
cosa teva, vull dir, del que utilitza el mòdul.

> per fer el gzip, tiro de system o de PerlIO::gzip?

No he provat PerlIO::gzip però jo li donaria una oportunitat
perquè segurament et serà més fàcil d'utilitzar que no pas
el «gzip» amb «open» i tota la pesca.

> hi ha algun mòdul de perl que treballi amb postfix per poder
> enviar el mail?

Si vols utilitzar el teu propi MTA, tens el mòdul Mail::Sendmail
(el postfix té un executable «sendmail» per compatibilitat); però
també pots utilitzar un relay directament amb Mail::SMTP.

En fi, vist com està de ben documentat aquest mòdul (ni tan
sols té llicència, i per tant no és programari lliure), jo no
l'utilitzaria pas.  Si finalment vols fer-ho en Perl, genera
el dump en un fitxer amb «mysqldump» i després tracta'l amb
Perl: per exemple, pots utilitzar «pack» per a codificar en
uuencode, però també pots utilitzar els MIME-tools per a crear
fitxers adjunts (comprimits o no) i un munt de coses més.

- --
Alex Muntada <alexmaalexm.org>
http://alexm.org/

-----BEGIN PGP SIGNATURE-----

iD8DBQFFIoPPLdxCGS3zaBERAuVMAKDFXe4qM8SwrMtjE9hAfIrV13Pt8gCfbdZ3
llq1TNDSQE0WJ6WoDp72n0A=
=ZyAe
-----END PGP SIGNATURE-----


Més informació de la llista de correu Barcelona-pm