Dies ist die Dokumentation zum SN-Paket. SN steht für SmallNews und ist ein kleiner und schneller Newsserver. Er ist für diejenigen gedacht, die gerne die Vorteile eines systemunabhängigen Newsdienstes nutzen möchten (es soll ja Leute geben, die mit mehr als einem Betriebssystem auf der selben Maschine arbeiten), ohne dabei ständig online sein zu müssen, um die aktuellen News auf jedem System lesen zu können.
Es müssen folgende Pakete installiert sein:
Für folgende Funktionen muss außerdem noch das Mail-Package installiert sein:
Wie funktioniert SN?
Zu jeder Newsgroup muß angegeben werden, von welchem externen Newsserver sie bezogen werden soll. Theoretisch kann man also für jede Newsgroup einen anderen Server angeben. Der Server wird über den xinetd gestartet, d.h. wenn eine Verbindung von einem Client (Newsreader) auf Port 119 (das ist der nntp-Port) gewünscht wird, dann wird der daemon gestartet, sofern der Client eine Zugriffsberechtigung hat (siehe Beschreibung der Konfigurationsvariablen).
Was kann SN?
Was kann SN nicht?
Nach der Installation des Paketes über das Setup-Menü sollte ein neuer Eintrag „News Service“ im Setup zu finden sein. Hier ist zuerst die Konfiguration zu bearbeiten. Anschließend im Untermenü „Goto news tools“ die Funktion „Add new group“ auszuführen. Dabei legt man auch einen externen Newsserver an. Jetzt kann man mit „Get/Sent News“ (ebenfalls im Untermenü „Goto news tools“) News holen (oder das Ganze automatisch erledigen lassen).
Die Konfiguration kann über den Menüpunkt 'Edit configuration' geändert werden.
Ich empfehle für die Konfiguration den Editor 'ece' zu verwenden. Nachdem der Editor beendet wurde, wird abgefragt, ob die Konfiguration aktiviert werden soll. Wird dies bestätigt, so werden über ein Skript die Anpassungen umgehend wirksam gemacht. Es ist zu beachten, dass einige Programme eigenständig, bei erneuter Aktivierung, die Konfigurationsdatei erneut einlesen, sodass eine Beantwortung dieser Abfrage mit 'Nein' nur zu einem kurzen Aufschub der Aktivierung führt.
In der Konfigurationsdatei, die über das Menü zugänglich ist, sind folgende Parameter vorhanden; wer sie von Hand editieren will, findet sie unter /etc/config.d/sn
Gültige Werte: yes, no
Standardeinstellung: START_SN='no'
Gültige Werte: FQDN
Standardeinstellung: SN_FQDN=”
Gültige Werte: yes, no
Standardeinstellung: SN_CLEAR_LOGS='no'
Gültige Werte: yes, no
Standardeinstellung: SN_REQ_NEW_GROUPS='yes'
Gültige Werte: yes, no
Standardeinstellung: SN_POST_FORCE='no'
Gültige Werte: Zahl
Standardeinstellung: SN_ALLOW_HOSTS_N='1'
Gültige Werte: alles
Standardeinstellung: SN_ALLOW_HOST_x_NAME=”
Gültige Werte: yes, no
Standardeinstellung: SN_ALLOW_HOST_x_ACTIVE'='no'
Bsp.:
Wenn diese Variable leer gelassen wird, dann darf jeder auf dem Newsserver lesen und schreiben.
Gültige Werte: hostname, ip/subnetmask
Standardeinstellung: SN_ALLOW_HOSTS_x='localhost'
Gültige Werte: Zahl
Standardeinstellung: SN_USER_N='1'
Bsp.:
Die Benutzer und Passwörter sind unabhängig von den Systembenutzern. Es können also beliebige Werte vergeben werden.
Gültige Werte: username
Standardeinstellung: SN_USER_x_NAME=”
Gültige Werte: yes, no
Standardeinstellung: SN_USER_x_ACTIVE'='no'
Bsp.:
Die Benutzer und Passwörter sind unabhängig von den Systembenutzern. Es können also beliebige Werte vergeben werden.
Gültige Werte: password
Standardeinstellung: SN_USER_x_PASSWD=”
Gültige Werte: absoluter Verzeichnisname
Standardeinstellung: SN_LOG_DIR='/var/log/sn'
Gültige Werte: relativer Dateiname
Standardeinstellung: SN_FETCH_LOG='snfetch.log'
Gültige Werte: relativer Dateiname
Standardeinstellung: SN_NNTPD_LOG='snntpd.log'
Gültige Werte: relativer Dateiname
Standardeinstellung: SN_DB_LOG='sndb.log'
Gültige Werte: relativer Dateiname
Standardeinstellung: SN_CONF_LOG='snconf.log'
Gültige Werte: relativer Dateiname, NG newsgroup, EM email-adresse
Standardeinstellung: SN_ADMIN='snadmin.log'
Gültige Werte: manual, wait, auto
Standardeinstellung: SN_FETCH_MODE='manual'
Gültige Werte: Zahl
Standardeinstellung: SN_FETCH_TIMES_N='1'
Gültige Werte: alles
Standardeinstellung: SN_FETCH_TIMES_x_NAME=”
Gültige Werte: yes, no
Standardeinstellung: SN_FETCH_TIMES_x_ACTIVE'='no'
(komplexe Definition): Legt fest, zu welchen Zeitpunkten dieser Cronjob ausgeführt werden soll. Die einzelnen Werte sind durch Leerzeichen voneinander getrennt. Das Format setzt sich wie folgt zusammen: Minute Stunde Tag_im_Monat Monat Wochentag
Minute: | Wert von 0 bis 59 |
Stunde: | Wert von 0 bis 23 |
Tag_im_Monat: | Wert von 1 bis 31 |
Monat: | Wert von 1 bis 12 |
Wochentag: | Wert von 0 bis 7, wobei 0 und 7 Sonntag sind |
Ein Cronjob wird nur ausgeführt, wenn alle Kriterien zutreffen
(logisches UND);
so wird ein Cronjob mit der Definition 23 12 1 * 1
nur um 12.23 Uhr eines jeden Monatsersten ausgeführt, der
zugleich ein Montag ist.
Einzelne Werte können mit Kommata getrennt gruppiert werden; sie werden dann wie ein logisches ODER betrachtet.
Beispiel:
0,27 * * * * führt jeweils zur vollen Stunde und 27 Minuten
danach einen Job aus;
dieser Eintrag ist äquivalent zu den beiden folgenden
(zusammen betrachtet): 0 * * * * und 27 * * * *
Periodische Einträge können durch die Angabe einer Basis und
des Intervalls angegeben werden.
So wird 0 0/2 * * * immer zu jeder geraden vollen Stunde ausgeführt.
Gültige Werte: m s T M W (25 23 * * *)
Standardeinstellung: SN_FETCH_TIMES_x='*/30 * * * *'
ACHTUNG
Manche Newsserver haben eine Beschränkung der Anzahl
gleichzeitiger Verbindungen von einer IP (bei news.cis.dfn.de
sind z.B. maximal vier gleichzeitige Verbindungen von einer IP
erlaubt). Man sollte sich also vorher darüber informieren,
sonst kann es passieren, dass einige Gruppen nicht oder nur
unvollständig synchronisiert werden.
Gültige Werte: Zahl
Standardeinstellung: SN_FETCH_CONNECTS='2'
Gültige Werte: Zahl von 1024-65535
Standardeinstellung: SN_WAIT_PORT='20000'
Gültige Werte: hostname, ip
Standardeinstellung: SN_WAIT_ALLOW='localhost'
Gültige Werte: Zahl
Standardeinstellung: SN_GENERAL_N='1'
Gültige Werte: alles
Standardeinstellung: SN_GENERAL_x_NAME=”
Gültige Werte: yes, no
Standardeinstellung: SN_GENERAL_x_ACTIVE'='no'
Gültige Werte: regulärer Ausdruck (grep-Syntax)
Standardeinstellung: SN_GENERAL_x_GROUP='.*'
Gültige Werte: Zahl[hdwmy]
Standardeinstellung: SN_GENERAL_x_EXPIRETIME='1m'
Gültige Werte: Zahl
Standardeinstellung: SN_GENERAL_x_MAXARTICLES='200'
Gültige Werte: rw, ro
Standardeinstellung: SN_GENERAL_x_STATUS='rw'
Gültige Werte: Zahl
Standardeinstellung: SN_MODERATED_N='0'
Gültige Werte: Newsgroupname
Standardeinstellung: SN_MODERATED_x_GROUP=”
Gültige Werte: yes, no
Standardeinstellung: SN_MODERATED_x_ACTIVE'='no'
Gültige Werte: email-adresse
Standardeinstellung: SN_MODERATED_x_MOD=”
Gültige Werte: Zahl
Standardeinstellung: SN_LIST_N='1'
Gültige Werte: Mailinglistenadresse
Standardeinstellung: SN_LIST_x_NAME='yes'
Gültige Werte: yes, no
Standardeinstellung: SN_LIST_x_ACTIVE'='no'
Gültige Werte: lokaler Benutzername
Standardeinstellung: SN_LIST_x_USER=”
Gültige Werte: Mailinglistenadresse
Standardeinstellung: SN_LIST_x_TO=”
Gültige Werte: Newsgroupname
Standardeinstellung: SN_LIST_x_NEWSGROUP=”
Gültige Werte: email-adresse, ro
Standardeinstellung: SN_LIST_x_SENDER=”
Es gibt immer wieder Diskussionen, ob der FQDN gültig sein muss, oder nicht, da es bei der Interpretation durchaus Spielräume gibt, aber es gilt: Wenn man einen FQDN nutzt, der einem selbst gehört (z.B. eigene Domain) dann ist man auf der sicheren Seite. Wenn man das nur für den Newsservice nutzen will, dann gibt es Adressen (z.B. myfqdn) wo man sich einen eigenen FQDN reservieren kann. Dieser ist allerdings nur für den Einsatz in MID's von News oder Mails gedacht.
Normalerweise steht . für ein beliebiges Zeichen. Wenn man jedoch nach dem Zeichen . suchen will, dann muss man es maskieren mit \. Da \ aber auch ein Sonderzeichen ist und es bei der Übergabe durch die Shell verschluckt werden würde, muss man dieses wiederum mit \ maskieren.
Wed Aug 7 17:54:26 MEST 2002 snexpire:dh\_open:table has wrong size! snprimedb:dh\_open:table has wrong size! snprimedb:Can't open database:Function not implemented?
dann wurde die Datenbank nicht richtig aufgebaut. Abhilfe schafft hier ein erneutes Ausführen der Funktion 'Clear up Database' (bitte beachten, dass das Aufbauen der Datenbank eine Weile dauert, besonderns bei vielen Artikeln). Die letzten Zeilen in SN_DB_LOG sollten in etwa so aussehen:
snprimedb:insert:"message-id-bla-blub” already exists in foo-bar:12345 snprimedb:12345 insertions
oder es ist nur eine Datumszeile vorhanden, dann wurden keine Artikel als doppelt vorhanden erkannt
Die Originalsourcen des SN sind hier zu finden: SN-News