Newsx

From Albasani
Jump to: navigation, search


newsx (8) - news server exchange; post and fetch news articles

Mit diesem Programm kann man

  • Artikel von anderen Server holen
  • Artikel zu anderen Server schicken

Dazu braucht man nur einen gewöhnlichen NNTP-Zugang. Der Nachteil im Vergleich zu einem "richtigen" Peering ist die hohe Latenz.

Gedacht ist newsx für laufenden Abgleich zweier Newsserver durch regelmäßigen Aufruf, etwa durch cron. Für einmalige Aktionen, insbesondere das Nachladen bekannter MessageIDs, ist nntpget eine interessante Alternative.

Will man irrtümlicherweise abgelehnte Artikel nachladen, muss man die betreffenden Einträge zuerst aus der history löschen.

Contents

Artikel holen

Im folgenden geht es darum, alle (fehlenden) Artikel der Gruppe alt.de.rec.teich vom Server news.doubleSlash.org zu holen.

Konfiguration

active

Die betreffende Gruppe muss angelegt sein, also in /var/lib/news/active stehen.

grep alt.de.rec.teich /var/lib/news/active
alt.de.rec.teich 0000000914 0000000001 y

newsfeeds

In /etc/news/newsfeeds braucht man einen Eintrag für news.doubleSlash.org. Die zu holende Gruppe muss im Pattern enthalten sein, der Rest ist egal. Man kann einen Dummy-Eintrag ohne Feed basteln, oder ein bestehendes innfeed-Peering verwenden.

$ sed -ne '/^news\.doubleSlash\.org/,/^$/p' /etc/news/newsfeeds
news.doubleSlash.org/news.doubleSlash.org\
        ,news.ispa.de\
        ,news.musoftware.de\
        ,open-news-network.org\
        :!*,@*,$asnDACH,belwue.*,ger.*,fido.*,hamster.*,maus.*,\
        muc.*,z-netz.*,alt.*,comp.*,news.*,rec.*,sci.*, gnu.*,\
        $asnLINUX,$asnNOBINARY/!local\
        :Ap,Tm,<200000:innfeed!

in.hosts

Die zu holende Gruppe muss in der Datei /var/spool/news/in.hosts/news.doubleSlash.org verzeichnet sein.

$ cat /var/spool/news/in.hosts/news.doubleSlash.org
alt.de.rec.teich 918
alt.config 5603

newsx verwendet diese Datei, um über die Artikelnummer Buch zu führen. Für den ersten Download des Artikelbestands lässt man die Zahl weg.

artcutoff

INN verweigert die Annahme von Artikeln, die älter als artcutoff Tage sind. Der Wert 0 deaktiviert die Altersüberprüfung.

$ grep ^artcutoff /etc/news/inn.conf
artcutoff:              10

Um den Wert ohne Neustart zu ändern:

ctlinnd param c 0

Login

newsx hat viele Optionen. Mit einem normalen Account funktioniert aber nur eine bestimmte (kaum dokumentierte) Kombination. Im Zweifel hilft es, mit einem Port-Sniffer nachzusehen.

tethereal port nntp and dst news.doubleSlash.org

Die funktionierende Kombination sieht dann so aus:

/usr/lib/news/bin/newsx -pra auth.news.doubleSlash.org --readbeforeauth

Wobei die Datei auth.news.doubleSlash.org nur eine Zeile enthält: Username und Passwort durch ein Leerzeichen getrennt.

Das fertige Skript

#!/bin/sh
/usr/lib/news/bin/ctlinnd param c 0
/usr/lib/news/bin/newsx -d -d -pra auth.news.doubleSlash.org --readbeforeauth \
       --group '!*,alt.de.rec.teich,alt.config' --reset news.doubleSlash.org
/usr/lib/news/bin/ctlinnd param c 10

newsx muss unbedingt als Benutzer news ausgeführt werden. Der Aufruf des Skript durch root sieht dann etwa so aus:

 su - news -c ./teich.sh

news.text.chello.at

Dieser Server gestattet der Welt (ohne Passwort) das Lesen und Schreiben in telekabel.tratsch, erlaubt allerdings nur eine Verbindung pro IP-Adresse. Für viele Newsreader ist das ein Problem.

newsfeeds

$ sed -ne '/^news\.text\.chello\.at/,/^$/p' /etc/news/newsfeeds
news.text.chello.at/vietwist00.chello.at\
       :!*,@*,telekabel.*/!local\
       :Tf,Wf:

Der Feed-Type Tf,Wf schreibt die "storage token" der zu sendende Artikel in eine Datei. newsx geht diese Datei später durch und löscht die "storage token" aller erfolgreich abgeschickten Artikel wieder raus.

Das Skript

/usr/lib/news/bin/newsx --verbose \
       --maxnew=1000 --keep-path --max-path=999 \
       news.text.chello.at

Log-Einträge

Fehlermeldungen von newsx selbst sehen im Log so aus:

$ grep '\<newsx\>' news.notice | more
Jun 15 20:31:42 alpha826 newsx.real[20245]: received signal while alarm active: Interrupt 
Jun 15 20:31:42 alpha826 newsx.real[20245]: timeout on server socket 
Jun 15 20:31:42 alpha826 newsx.real[20245]: STAT 564 out of phase: 223 563 <e3loaf$i95$02$1@news.t-online.com> status 
Jun 15 20:31:42 alpha826 newsx.real[20245]: STAT 565 out of phase: 223 564 <1rc9ln1hv7fbx$.dlg@katzenbande.com> status 

Das weitere Schicksal geholter Postings hängt dann von rnews ab:

$ grep ' rnews: ' /var/log/news.notice | more
Jun 15 21:40:06 alpha826 rnews: offered <Xns9730471E03859Onanimasturberacum@38.119.106.50> news.doub
Jun 15 21:40:06 alpha826 rnews: rejected 437 Too old -- "Sun, 18 Dec 2005 00:02:09 -0600"

Will man irrtümlicherweise abgelehnte Artikel nachladen, muss man die betreffenden Einträge zuerst aus der history löschen.

Personal tools