[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Doubletten aus mbox entfernen. Kleines HowTo mit formail und procmail


Hallo zusammen,

aufgrund einer *kleinen* Panne in einem Mail-Script habe ich mir in
duzenden mbox-Files teilweise mehrere Duplikate einzelner E-Mails erzeugt, 
indem ich ein und die selbe eingehende E-Mail mehrfach parallel mittels 
procmail verarbeitet habe. 

Das Script selbst prueft zwar, ob eine Mail mit einer checksumme schon 
ge-procmail't wurde, hatte aber urspruenglich kein lockfile erzeugt, was 
eine parallel laufende Instanz des Scriptes effektiv am *zeitgleichen* 
Verarbeiten ein und der selben E-Mail verhindert haette.

Lessons learned ;)

Aufraeumen geht dann so (wer auch immer das mal benoetigt):

Angenommen neue (eingehende) Mails werden mit procmail verarbeitet und
dabei sortiert, kann man eine bestehende mbox Datei (also das, wo wo
procmail reinschreibt) mittels "formail" nochmal durchlaufen lassen.

In seiner Standardform funktioniert formail zB so:

formail -s procmail < ./unsortierte.mbox

Dabei wird der Inhalt von ./unsortierte.mbox in einzelne Nachrichten
aufgespilittet und einzeln an procmail verfuettert, also letztlich genau
das, was ein lokaler Mailer eben auch tun wuerde, zB sendmail, oder eben
mein Spezialscript (mit dem Bug).

formail kann dabei doppelte Message-IDs ausfiltern, wenn man ihm das
sagt:

formail -D 1048576 /tmp/idcache.tmp -s procmail < ./mbox-mit-duplikaten


Gruss
Raphael

PS: und jetzt bitte keine Beschwerden von Hipstern, die neumodischen 
Kram wie "maildir" verwenden oder von Leuten, die E-Mails nur noch mit 
GUIs oder gar nur noch Webmailer kennen!

-- 
Raphael Eiselstein <rabe@xxxxxxxxx> 
PGP                   4E63 5307 6F6A 036D 518D  3C4F 75EE EA14 F625 DB4E
.........|.........|.........|.........|.........|.........|.........|..




-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/