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

Re: procmail configuration - was ist ein lockfile



martin krung <umlt@gmx.net> wrote:
> habe mein procmail configuriert, versuchte dabei herauszufiden was ein
> lockfile ist. habe die englische erklärung, auch in deutscher übersetzt,
> nicht verstaden!


> wenn man ein lockfile benutzt, hat es nach dem :0 noch ein doppelpunkt,
> also so:

> :0:
> *^(To|Cc|Bcc).*umlt*
> $HOME/umlt
[...]
> was hat diese lockfile für ein einfluss ? was ist ein lockfile ?


Es geht darum gleichzeitige Zugriffe zu koordinieren. Angenommen du
bekommst in sehr kurzer Zeit zwei Mails fuer die dieses Regel
zutrifft, dann laufen gleichzeitig zwei procmail Prozesse. Wenn es
keine Koordination zwischen den beiden gibt, dann schreiben beide
gleichzeitig in die Mailbox. Infolgedessen hast du dann am Schluss in
der Mailbox mit ein wenig Pech nicht beide Mails in Folder, sondern
nur eines oder ein Gemisch davon. (Ich weiss nicht ob wirklich beide
Faelle auftreten koennen.)

Drum gibt es locking, der Procmail Prozess der zuerst fertig ist und
schreiben koennte, "lockt" zuerst die Mailbox fuer sich und schreit
erst dann, danach unlockt er sie wieder. Der zweite Procmail Prozess,
der mittendrin fertig wird, wartet solange bis er selbst locken kann.

Locking, dh. den ':' will man immer angeben, wenn man in eine Datei
ausliefert, fuer weiterleitungen oder Uebergabe an Programme ist es
sinnlos.

> ich habe im procmail zwei regeln, manchmal treffen beide für dasselbe
> mail zu - ich krieg dann das mail zweimal zugestellt .. hier die regeln

> :0: H
> * ^X-Loop: debian-*
> ! umlt@gmx.net
[...]
> :0: H
> *^(To|Cc|Bcc).*martin.krung@blabla.net.*
> #* (^TO:|^CC:|^BCC:).*martin.krung.@blabla.net.*
> ! umlt@gmx.net

Es muesste ':0 H:' heissen, ausserdem stellt du nicht in eine
Datei zu sondern schickst die Mail einfach weiter, daher ist der
Doppelpunkt ueberfluessig. 'H' kannst du dir auch schenken, weil es
die Voreinstellung ist. Trotzdem kommt es dadurch nicht zur
Dopplzustellung ausser du bekommst wirklich zwei Mails (z.B. weil dir
jemand ueber die Liste antwortet und dir ausserdem ein CC schickt.

Du kannst dir die Message-IDs merken lassen und diese Dublikate
ausfiltern:
:0
* 1^0 ^X-Loop: debian-*
* 1^0 ^(To|Cc|Bcc).*martin.krung@blabla.net.*
{
      :0 Wh: msgid.lock
      | formail -D 32768 .msgid.cache.debdevel

      :0
      ! umlt@gmx.net
}

Alles ungetestet! Nur mit "safety net" wie in procmailex(5)
beschrieben ausprobieren.

Lesetipp: procmailex(5) procmailrc(5) procmailsc(5) procmail(1)
           cu andreas



Reply to: