Leafnode (fuer News)


Leafnode Version 1.9.2 (SuSE)

i4l unterbricht waehrend des fetches die Verbindung

Ich will spam-absender im filter-file für leafnode definieren

Links zum Thema


Leafnode Version 1.9.2 (SuSE)

SuSE 6.124.11.1999

Lt. SuSE-Liste ist die mitgelieferte Version von Leafnode (leafnode 1.9.2) bei SuSE 6.1 fehlerhaft. Die derzeit (24.11.1999) aktuellste Version ist 1.9.5b2 (also die 2. Beta von Version 1.9.5) und laeuft bei mir jetzt stabil. Im Paket ist auch eine deutsche Installationsanleutung dabei, die man sich genau durchlesen sollte. Danach kann eigentlich nichts mehr schiefgehen.

Anfang
Inhaltsverzeichnis Linux Tipps


i4l unterbricht waehrend des fetches die Verbindung

alle24.11.1999

Das Abholen von News sind mehrere Vorgaenge. Zum ersten holt leafnode sich alle Header einer News-Gruppe ab. Anhand dieser Informationen entscheidet leafnode, ob ein Artikel zu alt ist, zu gross oder zu klein ist, etc. Diese Angaben stehen in der Datei /etc/leafnode/config.

Zu Problemen kann es kommen, wenn der i4l-Huptimeout zu klein gewaehlt ist, denn der Newsserver muss erst mal alle Header zusammenstellen, bevor er sie an leafnode weitergibt. Auf langsamen Servern kann das schon mal 1-2 Min. dauern, das kann dazu fuehren, dass i4l die Verbindung unterbricht. Bedauerlicherweise scheint leafnode bis in alle Ewigkeiten zu warten, ohne dass eine neuen Anfrage an den News-Server geschickt wird, weil i4l nicht neu anwaehlt. Das muss ich noch weiter untersuchen.

Abhilfe schafft ein Script, das den i4l-Huptimeout auf einen hoeheren Wert, z. B. 600 sec, setzt, dann die News abholt und danach den i4l-Huptimeout wieder auf den alten Wert setzt.

Anfang
Inhaltsverzeichnis Linux Tipps


Ich will spam-absender im filter-file für leafnode definieren

alle11.07.2000

Ich habe es noch nicht ausprobiert, weitere Hilfe steht in man applyfilter. Das Feature muss aber in /etc/leafnode/config freigeschaltet werden. Leider habe ich von regulaeren Ausdruecken auch nicht so die Ahnung (man 7 regex hilft hier weiter), aber ich wuerde es einfach mal so probieren:

für Absender mit

^From:.*"Name des Boesewichts"
und für Betreff mit
^Subject:.*"das will ich nicht mehr hoeren"
Das ^ steht für Zeilenanfang, der . für irgend ein Zeichen außer Zeilenumbruch, der * steht für beliebige Wiederholung des letzten Zeichens, einschließlich null mal. Alles andere steht für sich.

Hier mal die Original /etc/leafnode/filters:

# Leafnode filter configuration file (see the applyfilter(8) manual page)
#
# this file contains the set of filtering rules that are applied
# to the newsspool. Each rule must be on a separate line. Empty lines
# and comments (marked by a #  at the beginning of the line) are allowed.
#
# Each rule is a regular expression. For example, the following set of
# rules will delete all crosspostings to alt.flame.
 
# ^Newsgroups:.*[, ]alt.flame$
# ^Newsgroups:.*[, ]alt.flame,
Hier ein Zitat aus einer Mail aus der SuSE-Mailingliste (Autor bekannt):
Ein paar einfache Regeln:

^ steht für Zeilenanfang, aber nur wenn es das erste Zeichen ist.
$ steht für Zeilenende, aber nur wenn es das letzte Zeichen ist.
. steht für ein beliebiges Zeichen außer Zeilenumbruch.
[abc] steht _entweder_ für a, _oder_ für b, _oder_ für c.
[a-c] dito
[^abc] steht für alles außer für a, oder b, oder c.
[^a-c] dito
[a-zA-Z] steht für a-z und A-Z

Besser aber ist hierfür:
[:lower:] steht für die Kleinbuchstaben der jeweiligen Encoding. Bei LANG=de_DE gilt [:lower:] == [a-zäöü_] [:upper:] steht für die Großbuchstaben. Es gibt noch etliche andere: [:digit:], [:punct:], [:blank:], ...

[][^-] hier wird es kryptisch: steht für die Zeichen ], [, ^ und -
Begründung: ] schließt die Klammer, außer es steht als allererstes Zeichen, bzw. zweites nach einem ^. [ ist keine Gefahr. Es steht immer für sich selbst innerhalb einer [...]. ^ Negiert nur wenn es als allererstes Zeichen steht. - ist ein bis, außer es steht ganz am Anfang, bzw. als zweites Zeichen nach dem ^ oder ganz am Ende, dann steht es für sich.

\ Ist das Fluchtsymbol. Es schützt das nächste Zeichen. So steht \. für den . Oder \* für den * oder \\ für das \ selber.

So, daß waren die Atome. Hinzu treten noch die evtl. Häufigkeitsangaben:

* Das letzte Zeichen kann beliebig oft auch kein mal wiederhohlt werden.
+ Das letzte Zeichen kann beliebig oft aber mindestens einmal wiederhohlt werden.
? Das letzte Zeichen kann vorhanden sein, oder auch nicht.

Beispiele:
ab*c steht für ac, abc, abbc, abbbc, abbbbc, ...
ab+c steht für abc, abbc, abbbc, abbbbc, ...
ab?c steht für ac oder abc

Soetwas wird natürlich meißt nach einem [...] oder . verwendet.

Darüberhinaus gibt es noch andere Zeichen, die aber leider auch nicht einheitlich sind, es nicht bei jedem Befehl geben und manchmal mit \ davor vorkommen und manchmal ohne. Das jeweilig andere steht dann für das Zeichen selber:

\< Steht für den Wortanfang.
\> für das Wortende
\( steht für den Anfang einer Klammer
\) steht für das Ende der Klammer. Damit kann man so feine Sachen machen wie:
a\(bc\)*d steht für ad, abcd, abcbcd, abcbcbcd, .... aber nicht für abd Es kann aber auch sein, daß man dafür einfach ( nehmen muß und \( für die ( selber steht. Oder es ist halt genau umgekehrt. :((
Ist z.B bei grep genau andersherum wie bei egrep. :(((
\{3,5\} steht für 3 bis 5 maliges Wiederholen, einschließlich.
\{3,\} steht für mindestens 3 maliges Wiederholen.
\{,5\} steht für höchstens 5 maliges Wiederholen.
\| steht für ein oder. z.B steht ab|ac für ab oder ac, nicht aber für b oder c oder bc oder ba ...
\1 steht für die erste Klammer \(...\)
\2 steht für die zweite Klammer \(...\) usw. z.B:
\(a|b\)c\1 steht für aca oder bcb, aber nicht für acb oder bca.

Ich hoffe, Ihr blickt jetzt ein wenig besser rein. Wenn nicht, kann ich auch nichts dafür, ich habe mich bemüht. ;))

Ich weiß, am Anfang ist es kryptisch, aber mächtig. Wenn man es kann, will man es einfach nicht mehr missen. Leider ist es bei grep andes als bei egrep, andes als bei sed, vi, ... Als wenn es nicht kryptisch genug wäre, muß es auch noch uneinheitlich sein. Aber nicht meine Schuld. Imho ist dafür die Bedeutung des \ verantwortlich. Einmal verdeckt es eine Sonderbedeutung. Ein \. steht für ein . und nicht für ein beliebiges Zeichen, einmal kommt es durch ihm aber erst zu dieser Sonderbedeutung. z.B steht \n oft für Zeilenumbruch oder \t für den horizontalen Tab.

Ende des Zitates ...

Anfang
Inhaltsverzeichnis Linux Tipps



Falls sie Anregungen, Beschwerden oder sich einfach nur so zu dieser Homepage aeussern wollen, kein Problem. Unser Webmaster kümmert sich darum.
If you had any suggestions, or hints, please contact our Webmaster. Thank You.

Letzte Aktualisierung / Last update: