** sp4si Script package for Suck & INN **
0.99 2000-12-16
[ CHANGES | ENGLISH
]
Einführung:
sp4si darf weiterverbreitet werden und unterliegt der GNU General Public
License der Version 2.
Ich übernehme keine Garantie für hier beschriebene Verfahrensweise
und hafte für keinerlei Schäden die eventuel durch dieses Dokument
oder sp4si entstehen könnten. Verwendung auf eigene Gefahr. Ich
hoffe natürlich daß sowohl die Intallation als auch der Betrieb
ohne Probleme abläuft :-).
(c) 1998-2000 Peter Sobisch, Alle Rechte vorberhalten.
Da meistens anfangs sehr viele elementare Fragen offenstehen ud keiner
so richtig Lust hat lange Anleitungen zu lesen, habe ich mich dazu entschlossen
diese Anleitung in der Form von kurzen Fragen und Antworten zu gestalten.
Dieser Text ist als WWW-Seite und als Reguläre Anleitung zum sp4si
(im sp4si-Paket enthalten) geschrieben.
Inhalt
-
Was ist sp4si ?
-
Was kann sp4si und was nicht ?
-
Warum und wann brauche ich sp4si ?
-
Was brauche ich um sp4si einsetzen zu können ?
-
Wie funktioniert sp4si ?
-
Syntax und Funktionen
-
Konfiguration: env, newshosts und andere
-
active - Scripts: get.active und rebuild.active
-
Spool - Scripts: nntp.up, nntp.down, uucp.batch
und uucp.cico
-
Bestell - Scripts: subscribe und wwwsubscribe
-
Installationsscript: install.sh
-
Installation
-
Konfiguration: erste Schritte
-
Tips
-
lokale Newsgroups hinzufügen
-
den sp4si-Betrieb automatisieren
-
erweiterte Konfiguration: env
-
sp4si und CNFS
-
Bezugsquelle
1. Was ist sp4si ?
Das sp4si ist ein Scriptpaket, daß das Management von INN und das
Zusammenspiel mit SUCK sehr erleichtert und den Konfigurationsaufwand bei
der steigenden Anzahl der zu spoolender Newshosts sehr niedrig hält.
Es ist aus Not enstanden und richtet sich hauptsächlich an die jenigen
die über eine Wählverbindung ins Internet gelangen und die News
offline auf ihrem kleinen lokalen INN lesen möchten und an die, die
ihr lokales News-System erweitern möchten.
Anfangs war es ursprünglich nur ein Script zur automatischen lokalen
Newsgroups-Bestellung und hat sich mit laufe der Zeit zu einem (fast) automatischen
multihost- und multitaskingfähigen Spool-Tool für auf INN und
suck
basierende Newssysteme entwickelt.
[Zurück]
2. Was kann sp4si und was nicht ?
-
sp4si kann über einen einzigen Script-Aufruf alle konfigurierten
Newsserver im Hintergrund asynchron spoolen. Es können auf Wunsch
Berichte per Mail zugestellt oder in einer angegebene Newsgroup (zB: local.spool)
gepostet werden mit dem Ergebnis des Spools.
-
sp4si kann konfiguriert werden um das Download der active Dateien
von den konfigurierten Newsservern automatisch ablaufen zu lassen, sie
filtern und daraus dann eine globale active-Datei generieren und sie dann
noch INN-komform ersetzen.
-
sp4si kann automatisch die Konfigdateien für suck entsprechend
den in ~/.newsrc bestellten Newsgroups angepasst werden.
Es wird auch krn (KDE Newsreader) mit seiner Configdatei unterstützt.
-
sp4si bietet eine WWW Oberfläche in Form eines CGI Scripts
für Newsreader-unabhängige Bestellungen
-
sp4si übernimmt vollständig die Arbeit der get.news
und put.news Scripts die mit suck verbreitet werden, wodurch
die beiden Scripts nicht mehr benötigt werden. Es kann jetzt auch
News per UUCP Spoolen. Hierbei ist an NNTP-Newsserver gedacht die News
zusätzlich per UUCP über TCP anbieten. Denn reine UUCP
Sites brauchen kein Spooltool :-)
-
sp4si ist kein Konfigurationstool für INN, somit muß
die INN Konfiguration weiterhin vorgenommen werden wie bisher, sp4si
soll nur die tagtägliche Arbeit mit einem Newssystem und dessen Erweiterungen
erleichtern.
[Zurück]
3. Warum und wann braucht man sp4si
?
-
wenn man öfter verschiedene Newsgroups bestellt und wieder abbestellt
-
wenn man mehr Kontrolle darüber haben und mehr wissen möchte
ob Dein News-System den Spool ordnungsgemäß abgeschlossen hat
-
wenn man sein News-System unkompliziert erweitern möchte
-
wenn man mehrere News-Server spoolt, die die Übretragungsbandbreite
nicht voll ausschöpfen können und Du dadurch auch Zeit (und Geld)
kosten
-
wenn der eigene Provider News zusätzlich zum NNTP auch per UUCP
über TCP anbietet
für das alles wäre man mit Sicherheit mit sp4si sehr gut beraten.
[Zurück]
4. Was braucht man um sp4si einsetzen
zu können ?
Es werden folgende Pakete benötigt:
-
INN
es wird das traditionelle und api (CNFS) Speichersystem unterstützt
(CNFS mit Verbindung mit UUCP ist noch nicht erprobt)
-
suck
(es empfielt sich immer die neueste Version zu ziehen)
-
sp4si
(natürlich :)
-
je nach Bedarf UUCP (Quelle unbekannt, ist aber in den meisten Distribution
bereits vorhanden)
-
falls der CGI-Script benutzt werden soll, muss auch ein fertigkonfigurierter
CGI-fähiger HTTP-Daemon vorhanden sein, zB.: apache.
Es wird vorrausgesetzt daß INN bereits fertig installiert und konfiguriert
ist, das bezieht sich insbesondere um lokale Einstellungen. Wie dies am
einfachsten zu bewerkstelligen ist beschreibt Carsten Voss in seiner Anleitung
"Einrichtung
eines News-Systems unter Linux". Ferner wird vorrausgesetzt daß
die Befehle aus dem Suck-Paket sich im aktuellen Kommando-Suchpfad befinden,
am besten ist es, wenn man sie ins /usr/bin oder /usr/local/bin Verzeichnis
kopiert.
[Zurück]
5. Wie funktionert sp4si ?
sp4si basiert auf mehreren Scripts und zwei Konfigurationsfiles: newshosts
und env. Die newshosts Datei beinhaltet die Namen der Hosts
und der Sites die gespoolt werden sollen und die env Datei enthält
die Environment-Variablen die zu fast allen sp4si-Scripts zur Laufzeit
hinzugefügt werden.
sp4si setzt sich eigentlich aus drei verschiedenen Gruppen von
Scripts zusammen: ein Teil dient zur Verwaltung der active Datei,
ein weiterer bietet die automatische Verwaltung der bestellten Newsgroups
und der dritter Teil kümmert sich um den News-Spool selbst.
Fast alle Scripts lesen die newshosts Tabelle ein und führen
Aktionen an allen gültigen Einträgen durch. Das hat den Vorteil,
daß falls man ein neuen Newsserver hinzufügen möchte, muß
er nur in der newshosts und in der newsfeeds (INN) Dateien
eingetragen werden.
sp4si erleichtert den Umgang mit mehreren Newsservern und dank der
zentralen Umgebung lässt sich sehr leicht und effektiv steuern und
einsetzen.
Falls man das Spool-Frontend spool.news benutzt (was sehr empfohlen
wird), werden alle Spoolaktivitäten automatisch gelogt und auf Wunsch
auch Berichte per E-Mail zugeschickt oder in eine Newsgroup zugestellt.
[Zurück]
6. Syntax und Funktionen
6.1. Konfigurationsdateien
-
env
wird bei der Installation neu erzeugt (mit Sicherheitsabfrage falls
bereits vorhanden) und ist im sp4si-Hauptverzeichnis zu finden.
Hier sind die Shell-Environment Variablen für die Scripts untergebracht
um die Umgebung einheitlich und zentral beinflussen zu können. Alle
Optionen sind defaultmäßig in der env Datei kommentiert
-
newshosts
wird bei der Installation neu erzeugt (mit sicherheitsabfrage falls
bereits vorhanden) und ist im sp4si-Hauptverzeichnis zu finden.
Hier werden die Site-, Hostnamen, Spoolart, NNTP-Port, NNTP-Login,
NNTP-Passwort, UUCP-Packer, GUP-Mail und GUP-Passwort angegeben. Die einzelnen
Parameter werden mit einem Doppelpunkt getrennt, auf dies Art kann einfach
ein Parameter weggelassen werden wenn der nicht benötigt wird (Doppelpunkte
müssen jedoch vorhanden sein!). Kommentare werden mit # am Anfang
der Zeile eingeleitet.
Syntax:
<site>:<newshost>:[up/down]:[port]:[login]:[pass]:[packer]:[gupmail]:[guppass]
wobei:
<site> - den selben Namen haben muss wie der dazugehöriger
Eintrag in newsfeeds
<newshost> - den Newsserver Hostnamen beinhaltet über
den der im Internet erreichbar ist
[up/down] - (optional) die Spoolart angibt wie die News gespoolt
werden wollen. Gültige Einträge sind:
- nntp/nntp (oder einfach nntp
oder keine Angabe): Upload und Download über NNTP
- nntp/uucp: Upload über NNTP,
Download über UUCP
- uucp/uucp (oder einfach uucp):
Upload und Download über UUCP
- uucp/nntp: Upload über UUCP,
Download über NNTP
Wird keine Spoolart angegeben wird nntp automatisch angenommen.
[port] - (optional) der NNTP Port, wird keins angegeben wählt
sp4si automatisch den Standard NNTP Port (119)
[login] - (optional) falls der fremde Newsserver den NNTP Zugang
nur über ein Account zulässt, wird hier der Loginname eingetragen
(siehe [pass]).
[pass] - (optional) das Passwort für das NNTP Account
[packer] - (optional) den zu verwendenen Packer angibt für
den UUCP-Upload an: gzip, compress oder cat (für
ungepackt)
[gupmail] - (optional) die Mailadresse für Newsgroupsbestellungen
angibt wo gup(1) für die Bearbeitung zuständig
ist.
[guppass] - (optional) das Passwort für eigenes Site beim
gup Account angibt, der Sitenamen resultiert aus der eigenen UUCP Konfiguration
und wird im
subscribe Script (s.u.) mit uuname -l gewonnen.
Wie man UUCP Sites Konfiguriert kann zB: in UUCP-HowTo nachgeschlagen
werden.
Die Optionen sind zusätzlich in der newshosts Datei beschrieben.
-
localhost.active
wird bei der Installation neu erzeugt (mit Sicherheitsabfrage falls
bereits vorhanden) und ist im site Unterverzeichnis zu finden.
Hier werden in einem active(5)-Format lokale Newsgroups eingetragen
die bei nächstem Start von rebuild.active angelegt werden sollen.
-
localhost.newsgroups
wird bei der Installation neu erzeugt (mit Sicherheitsabfrage falls
bereits vorhanden) und ist im site Unterverzeichnis zu finden.
Hier werden die Newsgroupsbeschreibungen für lokale Newsgroups
eingetragen, werden noch nicht unterstützt.
Alle Scripts, die die Newshosts einzeln behandeln orientieren sich an der
newshosts
Tabelle. Zu allen Scripts wird zur Laufzeit der Inhalt der env Datei
hinzugefügt. Bei fast jedem Script wird bei der Angabe von -h
oder --help oder -? die Syntaxinformation angezeigt.
[Zurück]
6.2. active - Scripts
-
get.active
Syntax: get.active [ -n ]
lädt die active Dateien von allen News-Hosts, die Dateien werden
unter active im Unterverzeichnis site/<site>
(siehe env Datei) gespeichert. Es besteht auch die Möglichkeit
die newsgroups-Description Dateien runterzuladen, wird aber noch von keinem
der Scripts unterstützt. Sie kann hier mit dem Parameter -n eingeleitet
werden.
-
rebuild.active
Syntax: rebuild.active
erzeugt aus den Site-eigenen active Dateien mit Berücksichtigung
der Subscriptions in der newsfeeds Datei eine neue active Datei,
stoppt den INN, ersetzt die lokale active Datei mit der neuen, lädt
alle Konfigurationsdateien (INN), renummeriert die neue active Datei und
startet INN neu.
ACHTUNG: Bevor dieser Script gestartet wird sollte die newsfeeds
Datei bereits fertig konfiguriert sein inkl. neue Sites.
Bei dem o.g. Vorgang werden aus Performancegründen (damit die
newsfeeds
Datei nicht jedesmal neuinterpretiert werden muss) spool Dateien
erstellt und in den jeweiligen site/<site> Unterverzeichnissen
gespeichert. Sie beinhalten die Namen der Newsgroups die von den jeweiligen
Sites gespoolt werden sollen und werden zum automatischen Subscribing benötigt.
[Zurück]
6.3. Spool - Scripts
-
spool.news
Syntax: spool.news [-s]
ein multitaskingfähiges Frontend für den Newsspool. Damit
werden die Scripts nntp.up, nntp.down, uucp.batch und uucp.cico
automatisch gestartet, die Scriptausgaben zusammengefasst, daraus Reports
erstellt und per Mail verschickt oder in eine angegebene Newsgroup gepostet.
Der Parameter -s erlaubt das Spoolen synchron zu starten. Hier werden
die einzelnen spools nacheinander durchgeführt was länger dauert
aber sicherer ist und beansprucht nicht so viel Prozessorzeit. Bei einem
neueren Kernel (mit überarbeiteten TCP/IP Stack) dürfte aber
der asynchroner Modus die beste Einstellung sein, deshalb ist er defaultmäßig
eingestellt.
-
nntp.down
Syntax: nntp.down <site> [ logfile ]
lädt die News-Artikel runter vom gespoolten News-Server über
NNTP mit suck(1) und postet sie dem lokal laufenden INN mit innxmit(1).
nntp.down
erwartet als Parameter nur den Sitenamen der dann über
newshosts
aufgelöst wird. Falls <logfile> angegeben wird, wird die
Standardausgabe in dieses Logfile umgeleitet. Dieser Script kann auch separat
ohne spool.news aufgerufen werden. Normalerweise werden die runtergeladene
Artikel local mit innxmit(1) gepostet, man kann es aber auch mit
rnews(1)
erledigen lassen. Dafür muß die Variable LOCALPOST in
der env Datei geändert werden.
-
nntp.up
Syntax: nntp.up <site> [ logfile ]
postet dem fremden Newsserver seinen Sendebuffer mit rpost(1)
mit Anwendung des out.filter Scripts, der Rest ist analog zu nntp.down.
-
uucp.batch
Syntax: uucp.batch <site> [ logfile ]
batcht mit batcher(1) die zu versendende Postings zum Spool
an das jeweilige Site, es wird der out.filter angewendet, der in
diesem Fall die Postingslänge neuberechnet und die alte länge
ersetzt. Falls ein alternativer Packer in der newshosts angegeben
wird (möglich sind:gzip, compress und cat), wird
dieser auch verwendet, bei unbekannten Packern wird der default-Packer
compress
verwendet. Andere Packer werden auf Anfrage vom Author inmplementiert.
Bei Fragen bzgl. Wahl des Packers sollte hier der News-Provider gefragt
werden.
Mit diesem Script werden keine News verschickt, sie werden nur zum
Verschicken vorbereitet und in den Outgoing Buffer gepackt, der erst mit
uucp.cico
(s.u.) verschickt wird. Parameter <logfile> hat die gleiche Bedeutung
wie bei den nntp.* Scripts. Weil der batcher(1) keine informative
Ausgaben macht, wird uulog(1) gestartet und die
batcher(1)
Log-Einträge rausgefiltert und angezeigt.
-
uucp.cico
Syntax: uucp.cico <site> [ logfile ]
startet ein UUCP-Call an das angegeben Site mit uucico(1). Hier
werden die Batches gespoolt die mit uucp.batch gebacht wurden, neue
Batches empfangen und ausgeführt. Parameter <logfile> hat
die gleiche Bedeutung wie beim uucp.batch Script.
-
out.filter
Syntax: out.filter [<infile> [<outfile>]]
dieser Script hat eine besondere Bedeutung und wird zum Versenden der
Postings unbedingt benötigt. Dieser Ausgangsfilter filtert mit awk(1)
angegebene Headerzeilen aus (der Path: ... wird hierbei nur
durch Path: not-for-mail ersetzt) und berechnet im rnews(1)-batch-Mode
die Batchlänge nach dem Filtern neu.
Der Filter kann durch das Verändern der FILTER_STRIP Variable
in der env Datei konfiguriert werden. Dort werden die auszufilternde
Headerzeilen in der Zeichenkette mit Leerzeichen getrennt angegeben.
Bemerkung: der Filter filtert NUR die Headerzeilen (bis zum Eintretten
der ersten Leezeile), kein Artikel-Body und falls die erste Headerzeile
mit '#! rnews nnn' beginnt schaltet der Filter in den 'rnews'-Modus.
[Zurück]
6.4. Bestell - Scripts
-
subscribe
Syntax: subscribe
liest alle newsrc-Dateien von allen Usern (es werden momentan nur die
~/.newsrc
Dateien und die newsrc-Dateien von krn(KDE) berücksichtigt)
ein und generiert mit Zuhilfenahme der
site/<site>/spool
Dateien danach die entsprechende subscription-Konfigurationsdateien
(s.u.) die zum Spoolen gebraucht werden. Damit auch alle Dateien gelesen
werden können, muss dieser Script als root gestartet
werden. subscribe kann auch jedesmal vor einem Spool gestartet werden,
damit die Newsgroupsbestellungen gleich berücksichtigt werden können.
Damit subscribe die newsrc Dateien richtig interpretiert
müssen sie in einem newsrc Format vorliegen, damit werden sehr
viele Newsreader abgedeckt wie: SLRN, TIN und ähnliche sowie Communicator
und Navigator von Netscape. Falls der benutzte Newsreader ein anderen Dateienamen
benutzt (Netscape) ist ein Link zu dieser ! Datei nötig. In der env
Datei können die Unterstützung für verschiedene newsrc-Dateien
mit NEWSRC und NEWSRC_KRN.
Bei subscriptions wird zwischen 2 veschiedenen unterschieden:
-
nntp (für suck)
die aktuellen Bestellungen aus den newsrc Dateien werden mit
den beim letzten Spool erzeugten site/<site>/sucknewsrc
verglichen und anhand der zuletzt erzeugten sucknewsrc Datei deren
Einträge mit aktuellen Artikelnummern übernommen und bei neuen
Bestellungen wird dem Newsgroupnamen eine über die LAST-Variable
in env definierte Zahl (default ist -10) angehängt. Damit wird
sichergestellt, daß Artikel bei nächstem Spool kontinuierlich
weiter "gesaugt" werden und neue Bestellungen anfangs mit den letzten 10
Artikeln beliefert werden.
-
uucp (für gup)
UUCP erfordert ein gänzlich anderes Handling. Hier wird eine Datei
mit den zuletzt bestellten Newsgroups unter site/<site>/uucpnewsrc
erstellt. Beim nächsten Start von subscribe werden die neu
ermittelten Bestellungen mit den zuletzt bestellten verglichen und erst
wenn eine Änderung vorliegt, wird eine Mail an den gup(1) Account
beim Newsprovider abgeschickt. Damit ist sichergestellt, daß der
Newsprovider nicht jedesmal bei jedem subscribe-Lauf mit Subscribemail
bombardiert wird.
-
wwwsubscribe
Syntax: im Browser eingeben: http://HOSTNAME/cgi-bin/wwwsubscribe
wobei HOSTNAME der Name des Rechners ist, auf dem sp4si installiert
ist und cgi-bin der Name des CGI Verzeichnisses ist (in den meisten Fällen
heisst es cgi-bin).
Dieser Shell Script wird beim Aufruf im WWW-Browser vom HTTP Daemon
auf dem Server ausgeführt. Es gelten alle Einschränkungen, die
zum Account des HTTP-Daemons (in der SuSE Distribution ist das der User
wwwrun)
gehören. Der Script erzeugt eine eigene .wwwnewsrc Datei, die
im Homeverzeichnis des HTTPD Accounts gespeichert wird. Damit subscribe
(der weiterhin ausgeführt werden muss) die Bestellungen auch berücksichtigt,
muss sichergestellt sein, daß die Bearbeitung der wwwnewsrc
Datei in der env Datei auch aktiviert ist.
Dieser Script bietet eine einfache WWW-Obefläche um die Bestellungen
der Newsgroups zu handhaben. Es können Newsgroups mit der Maus markiert
und bestellt werden. Eine Suchfunktion und eine Möglichkeit die WWW-Bestellliste
einzusehen sind ebenfalls implementiert. Im Großen und Ganzen ist
die Oberfläche selbsterklärend.
Achtung: der wwwsubscribe ersetzt nicht den subscribe
Script, der subscribe Script wird weiterhin benötigt um die
Bestellungen aller User zu "sammeln" und die SUCK-Konfigurationsdateien
zu erstellen.
[Zurück]
6.6. Installation
-
install.sh
Syntax: install.sh
Installationsscript, führt die Pfadabfrage durch, legt die Unterverzeichnisse
an und installiert die Scripts in das angegebene Installationsverzeichnis.
Hierbei werden die Scripts, die die env Datei einschliessen umgeschrieben
(bekommen den richtigen Pfad der env Datei zugewiesen) und dann
die env und newshosts Dateien generiert.
Bemerkung: es werden (insofern nicht vorhanden) ebenfalls die
Konfigurationsdateien localhost.active und localhost.newsgroups
im Unterverzeichnis site erzeugt, mit denen man auf eine einfache
Art und Weise lokal eigene Newsgroups hinzufügen kann die dann bei
jedem start von rebuild.active berücksichtigt werden. Es werden
bereits zwei Newsgroups eingetragen: <hostname>.test (immer gut
zu gebrauchen) und <hostname>.spool (wo auch die Spoolreports
gepostet werden können). <hostname> ist der Hostname des
Rechners wo sp4si installiert wurde. Durch die Hostnamen in lokalen Newsgroups
wird vemieden, daß durch eine falsche newsfeeds Konfiguration
die Artikel nach aussen gepostet werden können.
CGI: da die gesamte Installation als User news abläuft,
kann aus zugriffsrechtlichen Gründen nicht in das CGI Verzeichnis
geschrieben werden. Deswegen ist es notwendig, den CGI Script manuell reinzukopieren
und mit den benötigten Rechten auszustatten. Siehe Kapitel 7. Installation.
[Zurück]
7. Installation
ACHTUNG:
Bevor sp4si installiert werden kann muss INN korrekt instaliert worden
und funktionsfähig sein.
Falls UUCP benutzt werden soll muss dieses ebenfalls korrekt konfiguriert
worden sein.
Wenn der CGI-Script benutzt werdne soll, muss vorher ein fertig konfigurierter
HTTP-Daemon vorhanden sein.
UUCP und HTTPD Konfigurationsanleitung gehört nicht zum Umfang
von sp4si und muss aus anderen Quellen bezogen werden (zB: HowTo). Das
sp4si Archiv besteht aus folgenden Scripts:
-
install.sh - ein Installationsscript
-
get.active - dient zum Download der active-Dateien
-
rebuild.active - generiert eine neue active und ersetzt damit die
lokale active Datei
-
subscribe - dient zur automatischen Newsgroups Bestellung, muss
als root gestartet werden
-
wwwsubcribe - dient zur manuellen Newsgroups-Bestellung über
ein WWW-Interface
-
spool.news - Spool-Frontend
-
nntp.down - dient zum Download der News-Artikel
-
nntp.up - dient zum Upload der News-Artikel
-
uucp.batch - batcht die Artikel für den UUCP Spool (die Batches
werden aber noch nicht gespoolt)
-
uucp.cico - ("call-in-call-out") spoolt die uucp batches und empfängt
gleichzeitung die Batches vom Remote-Site
-
out.filter - Ausgangsfilter, wird von nntp.up und uucp.batch benötigt
-
sp4si_de.html - die deutsche Anleitung als HTML Dokument
-
sp4si_en.html - die englische Anleitung als HTML Dokument
-
README - die LiesMich Datei
-
CHANGES - das History File
Das Archiv wird zunächst mit tar xvfz sp4si-0.99.tar.gz entpackt.
Dann wechselt man mit cd sp4si in das neuangelegte Verzeichnis
und starten install.sh. Es werden hierzu keine Kommandozeilenparameter
erwartet. Um die Pfade der INN Installation zu ermitteln, wird die Datei
innshellvars
eingelesen. Es wird jetzt nur noch der Installationszielpfad manuell vom
User abgefragt. Falls die innshellvars Datei nicht gefunden werden
konnte, werden alle benötigten Pfade manuell abgefragt.
CGI Installation:
bei der Installation wird nach dem Usernamen des HTTPD-Accounts gefragt.
Dieser mag auch einem auch ein wenig fremd erscheinen, lässt sich
aber relativ leicht herausfinden. Zuerst muss der HTTP-Daemon gestartet
werden (wenn noch nicht geschehen), dann schaut man in der Prozessliste
und lässt sich diesen Anzeigen. In der ersten Spalte steht dann der
Accountname (hier wwwrun):
ps@comm:~ > ps -fC httpd
UID PID PPID C STIME TTY TIME CMD
root 10389 1 0 Dec08 ? 00:00:04 /usr/sbin/httpd -f /etc/httpd/httpd.conf -D PERL -D PHP
wwwrun 10392 10389 0 Dec08 ? 00:00:07 /usr/sbin/httpd -f /etc/httpd/httpd.conf -D PERL -D PHP
wwwrun 11064 10389 0 Dec08 ? 00:00:07 /usr/sbin/httpd -f /etc/httpd/httpd.conf -D PERL -D PHP
ps@comm:~ >
Nach der Installation muss der wwwsubscribe Script manuell in das CGI Verzeichnis reinkopiert
werden, dann müssen die Zugriffsrechte für alle auf lesen+ausführen
(rx) stehen, das erreicht man durch ein: chmod 755 wwwsubscribe.
[Zurück]
8. Konfiguration: erste Schritte
8.1. Schritt 1: newshosts konfigurieren
Nachdem die Installation erfolgreich abgeschlossen wurde, können
die Newsserver in die newshosts Tabelle (zu finden im Zielverzeichnis)
aufgenommen werden, zB.:
newshosts (Beispiel):
# example for NNTP sites
3dfx:news.3dfx.com
stardiv:news.stardiv.de:nntp/nntp
# example for UUCP sites
uucpsite:uucpsite.domain.com:uucp/uucp::::gzip:gup@uucpsite.domain.com:secret16
uucp2:uucp2.domain.com:uucp::::cat:gupaccount@uucp2.domain.com:der63lfd
# example
remsite:news.domain.com:2000:mylogin:mypass:nntp/uucp:cat:gup@news.domain.com:secrt.32
[Zurück]
8.2. Schritt 2: active Dateien
downloaden
Nachdem die Datei nun gespeichert wurde, kann jetzt der zweite Schritt
gemacht werden, die active Dateien müssen vom News-Server runtergeladen
werden. Mit dem Start des folgenden Script werden die jeweiligen active-Dateien
der o.g. News-Server runtergeladen und in den jeweiligen site/<site>
Unterverzeichnis gespeichert:
get.active
[Zurück]
8.3. Schritt 3: newsfeeds konfigurieren
Nachdem alle active Dateien nun erfolgreich runtergeladen und gespeichert
wurden, kann man zu dem einzigen umständlichen Schritt bei der Konfiguration
übergehen: die Newsfeedseinträge. Es müssen die active Dateien
(die neu runtergeladene) in den site/<site> Unterverzeichnissen angeschaut
werden und entschieden werden welche Newsgroups in unseres INN System von
welchen News-Servern übernommen und gespoolt werden sollen. Hierzu
müssen die entsprechenden Einträge in der newsfeeds Datei
erstellt werden. Jede Newsgroup sollte nur von einem Server
gespoolt werden, dadurch wird Querpropagation der Artikel vermieden. Dabei
möchte ich auf die Manpage von newsfeeds verweisen, die den
Syntax des newsfeeds Files beschreibt, trotzdem zur besseren Verständnis
biete ich in der Anleitung "Erweiterung
von INN & suck auf mehrere ! Newsserver" ein paar Beispiele
an.
[Zurück]
8.4. Schritt 4: neue active erzeugen
Nachdem die Newsfeeds eingetragen wurden, kann nun die globale active-Datei
generiert werden:
rebuild.active
hier wird die neue active Datei mit Berücksichtigung von localhost.active
Datei erzeugt und damit die alte active Datei ersetzt. Dafür wird
INN gestoppt, seine Konfigurationsdateien neugeladen und ausgewertet (die
newsfeeds
Änderungen werden aktiv) und anschliessend neugestartet.
Fertig !
Somit hat man ein fertig konfiguriertes News-System mit mehreren Newshosts.
Das ganze in einer Kurzfassung:
-
<site> <newshost> und evtl. <up/down> <packer> <gupmail>
<password> in newshosts eintragen
-
online gehen und mit get.active die active Datei(en) laden
(danach kann weiter offline gearbeitet weren)
-
die Newsfeeds in der newsfeeds Datei mit den gewünschten Newsgroups
eintragen
-
rebuild.active
[Zurück]
9. Tips
sp4si wurde dafür entwickelt um das meiste an Newsadministration einsparen
zu können, hier werden paar nützliche Tips vorgestellt die für
noch mehr Arbeit einsparen können.
9.1. Lokale Newsgroups hinzufügen
Um eine neue Newsgroup zB: my.newsgroup hinzuzufügen muss diese
in die localhost.active Datei eingetragen werden:
localhost.active (Beispiel):
localhost.test 0000000000 0000000001 y
localhost.spool 0000000000 0000000001 y
my.newsgroup 0000000000 0000000001 y
danach muss nur rebuild.active neugestartet werden:
rebuild.active
danach stehen uns 3 lokale Newsgroups zu Verfügung !
[Zurück]
9.2. den sp4si-Betrieb automatisieren
Sp4si kann mittels CRON vollautomatisch laufen und den eignen Newsserver
mit frischen Artikeln aus dem USENET versorgen. Dabei bedarf es keinerlei
Pflege. Es müssen lediglich einige Zeilen in die /etc/crontab
eingefügt werden:
ACTIVE="su -l news -c /etc/news/sp4si/get.active"
REBUILD="su -l news -c /etc/news/sp4si/rebuild.active"
SUBSCRIBE="/etc/news/sp4si/subscribe"
SPOOL="su -l news -c /etc/news/sp4si/spool.news"
ONLINE=/etc/ppp/ppp-on # how to get online
OFFLINE=/etc/ppp/ppp-off # how to get offline
0 6,16,21 * * * root $ONLINE; $SUBSCRIBE; $SPOOL; $OFFLINE
0 0 1 * * root $ONLINE; $ACTIVE; $OFFLINE; $REBUILD
Wie dieses Beispiel zeigt, werden 3 mal täglich News geholt, davor
allerdings werden noch alle Bestellungen berücksichtigt. Ferner wird
immer am ersten Tag eines Monats neuen active Dateien runtergeladen und
eine lokale active Datei erstellt, wodurch man immer up-to-date bleibt.
Um weitere Informationen über die Syntax der CRON Tabelle zu bekommen
gibt es auch eine Man Page: man 5 crontab.
[Zurück]
9.3. Erweiterte Konfiguration: env
Wie schon oben erwähnt, wird sp4si über die env Datei
konfiguriert. Bei dieser Datei handelt sich um ein Script, der von jedem
anderen Script als erstes ausgeführt wird um die gesetzte Variablen
wirksam zu machen. Der Aufbau disere Datei soll hier erläutert werden.
Die env Datei besteht aus 2 Bereichen:
-
den Pfadbereich, wo alle benötigte Pfade gesetzt werden. Diese wurden
bei der Installation ermittelt und sollen später nicht geändert
werden:
#!/bin/sh
#
# ** Script Package for Suck & INN (sp4si) **
# Read Manual for more
#
# Description: configuration file, will be set during installation
# You can change it manually.
#
# path environment
#
# DON'T REMOVE IT ! This is absolute necessery for running of sp4si.
# If you want to change any path values, you have to mov the correspondent
# files to the right directory.
BASE_DIR=/var/lib/news/sp4si # location directory of scripts
SITE_DIR=/var/lib/news/sp4si/site # location of site's active and newsgroups files
LOG_DIR=/var/lib/news/sp4si/log # directory for log files
SPOOL_DIR=/var/spool/news # spool directory
NEWSFEEDS=/var/lib/news/newsfeeds # path to newsfeeds file
ACTIVE=/var/lib/news/active # path to active file
OUTGOING_DIR=/var/spool/news/out.going # location of the newsfeeds, rpost need this
PATH=$PATH:/var/lib/news/sp4si:/usr/lib/news/bin:/usr/lib/uucp # path for binaries and scripts
# end of path environment
#
den Konfigurationsbereich, hier werden Variablen definiert die die Funktionen
und Spool beinflussen, diese Variablen dürfen zwar verändert
werden aber nur die vorgegeben Werte (siehe Kommentar) beinhalten. Falls
eine Variable der Konfigurationsvariablen fehlen oder falsch gesetzt sein
sollte, werden in den Scripts vordefinierte Werte genommen.
# configuration settings
#
# Each entry may be changed. If you remove an entry, the default value will
# be used. If you want to change the following values, so you have to use
# the discriptions beside the options or the manual. All option's names are
# in upper and all values are in lower case. An exception are string options
# such a FILTER_STRIP parameter.
Im "spool settings" Abschnitt wird die Art des Spools bestimmt. Mit MULTI=yes
wird der Multitaskingspool aktiviert, wo alle Spoolscripts gleichzeitig
gestartet werden, mit MULTI=no werden alle Scripts nacheinander
gestartet (siehe spool.news Parameter -s). Aus Performancegründen
ist die erste Einstellung vorzuziehen:
#
#
# spool.news settings
#
MULTI=yes # 'yes' = multitasking spool (asynchronous), 'no' = synchronous
Danach folgen die Einstellungen für die Reportzustellung. Reports
sind Ausgaben der Scripts mit Statusinformationen. sp4si stellt die Reports
per Mail zu und postet die in eine definierte Newsgroup. Standardmäßig
bei der Installation die $HOSTNAME.spool Newsgroup erzeugt die eben
für diesen Zweck benutzt wird. Dh. wenn man mit seinen Newsreader
diese Newsgroup bestellt (engl. subscribe) kann man sich die Spoolmeldungen
nach jedem Spool anschauen. Für beide Arten der Reports gibt es getrennte
Einstllmöglichkeiten, einmal für das Kriterium wann die Reports
verschickt werden sollen und einmal für das Ziel, wohin die verschickt
werden saollen. Als Kriterium gibt es: "Im Fehlerfall", "immer" und "nie"
und als Ziel: bei Mails - eMail Adresse und bei News - den Name der Newsgroup.
MAIL_REPORT=error # 'error'=only error, 'yes'=ever send, 'no'=no mail
MAIL_TO=news # email address of the report recipient
NEWS_REPORT=yes # 'error'=only error, 'yes'=ever send, 'no'=no news
NEWS_TO=comm.spool # newsgroups to send the report to
Die nächste Einstellung betrifft den Ausgangsfilter. Beim Verschicken
der Postings, müssen einige von unserem lokal laufenden INN
hinzugefügte Headerzeilen wieder entfernt werden. Die Namen der Headerzeilen
werden in die FILTER_STRIP Variable aufgenommen getrennt mit einem
Leerzeichen. Die Zeilen die sehr oft Probleme bereiten sind bereits standardmäßig
eingetragen, falls es später mit anderen Headerzeilen Probleme geben
sollte, können diese der Variable übergeben werden (inkl. Doppelpunkt).
In der Variable FILTER_PATH wird der String definiert, der den lokalen
Hostnamen in der Path: Zeile des Headers ersetzen soll.
#
# filter settings
#
# the following header fields will be stripped from outgoing messages
FILTER_STRIP='NNTP-Posting-Host: Xref: X-Server-Date:'
FILTER_PATH="not-for-mail" # to leave original path set to ''
Nun, kommen Bestellungrelevanten Einstellungen. sp4si kann über den
Script subscribe die bestellten Newsgroups automatisch spoolen. Damit entfallen
jegliche administative Aufgaben die man sonst bei jeder Änderung der
bestellten Newsgroups hätte machen müssen. Mit den NEWSRC Variable
kann die Berücksichtigung der standard ~/.newsrc Datei,
mit NEWSRC_KRN der durch den KDE Newsreader krn erzeugten ~/.kde/share/apps/krn/subscribed
und mit NEWSRC_WWW durch den CGI Script erzeugten ~wwwrun/.wwwnewsrc
Datei aktiviert werden. LAST definiert die Anzahl der Artikel, die Suck
bei einer neubestellten Newsgroup gleich runterladen soll. Dieses ist sehr
nützlich um sich ein Bild vom Inhalt der Newsgroup zu machen ohne
zu warten bis neue Artikel gepostet werden:
#
# subscribe settings
#
# 'yes' enables and 'no' disables an option :-)
NEWSRC=yes # for .newsrc file, it works with the most news reader
NEWSRC_KRN=no # for krn (kde) news reader
NEWSRC_WWW=yes # for www interface (CGI)
LAST=-10 # count of articles to download if new subscribed
Der letzte Abschnitt dient dem Runterladen der Artikel mit suck.
Hier können zusätzliche suck Parameter angegeben werden
und der lokale Spool bestimmt werden. Zur Auswahl stehen beim LOCAL_POST:rnews
und innxmit zur Verfügung. Bei rnews handelt sich um
ein Programm das normalerweise bei UUCP verwendet wird, innxmit
gehört zu INN Distribution und sollte deshalb vorzugsweise verwendet
werden. Die Frage ob es Performanceunterschiede gibt kann ich leider nicht
beantworten. rnews wurde nur auf Anfrage implementiert:
#
# nntp.down settings
#
SUCK_OPTIONS="" # insert additional options or parameters (man suck)
LOCAL_POST="innxmit" # how to post articles locally: 'rnews' or 'innxmit'
# end of env file
[Zurück]
9.4. sp4si und CNFS
sp4si wurde auf Anfrage provisorisch an das CNFS angepasst. Die zu versendetete
Artikel werden dabei einer nach dem anderen verschickt, was gerade nicht
die höchste Performance bietet. Es bedarf noch weiterer Verbesserungen
in dieser Hinsicht. Geplant ist ein Batchfile zu generieren und das Batch
dann mit der neuen Version von rpost zu verschicken (>4.2.3 kann auch Batches
verschicken). Wie der INN auf CNFS umgestellt werden kann steht unter zB:
Umstellung
der INN Konfiguration uuf CNFS.
[Zurück]
10. Bezugsquelle:
folgende Links können zum Download benutzt werden:
http://www.lamepage.de/linux/news/sp4si-0.99.tar.gz
ftp://sunsite.unc.edu/pub/linux/system/news/misc/sp4si-0.99.tar.gz
Jegliche Bugreports, konstruktive Kritik und Verbesserungsvorschläge
sind gerne willkommen. Bitte Mail an Peter
Sobisch <petersob@gmx.net>.
Hiermit möchte ich mich bei Carsten
Voss bedanken, dessen Anleitung mir geholfen hat mein erstes INN Nerwssystem
einzurichten.
[ Back | Home ]
(C) 1998-2000 by Peter
Sobisch