Newsx
Aus Albasani
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.
Inhaltsverzeichnis |
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.

