![]() |
|
Linux - Wegweiser für NetzwerkerOnline-VersionCopyright © 2001
by O'Reilly Verlag GmbH & Co.KG Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser für Netzwerker oder wollen Sie es bestellen, dann klicken Sie bitte hier. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Im Gegensatz zu einfacheren Datenübertragungsprogrammen wurde UUCP so konzipiert, daß es alle Übertragungen automatisch durchführen kann. Ist es einmal korrekt eingerichtet, ist ein tägliches Eingreifen des Administrators nicht mehr nötig. Die für automatischen Transfer benötigten Informationen werden in einer Reihe von Konfigurationsdateien festgehalten, die im Verzeichnis /usr/lib/uucp angesiedelt sind. Die meisten dieser Dateien werden nur beim Anwählen externer Hosts verwendet.
Die UUCP-Konfiguration als schwierig zu bezeichnen wäre eine Untertreibung. In der Tat ist sie eine haarige Angelegenheit, und das manchmal etwas kurz angebundene Format der Konfigurationsdateien macht die Dinge auch nicht gerade einfacher, obwohl das Taylor-Format im Vergleich zu den älteren Formaten von HDB oder Version 2 schon wesentlich leichter zu lesen ist.
Um Ihnen ein Gefühl dafür zu vermitteln, wie diese Konfigurationsdateien zusammenwirken, wollen wir Ihnen die wichtigsten vorstellen und einen Blick auf einige beispielhafte Einträge in diesen Dateien werfen. Wir gehen hier nicht ins Detail; eine genauere Beschreibung wird in späteren, separaten Abschnitten gegeben. Wenn Sie UUCP auf Ihrer Maschine einrichten möchten, sollten Sie am besten auf einige Beispieldateien zurückgreifen und diese schrittweise an Ihre Bedürfnisse anpassen. Sie können dazu entweder auf die nachfolgend aufgeführten oder auf die in Ihrer Linux-Distribution enthaltenen Dateien zurückgreifen.
Alle in diesem Abschnitt behandelten Dateien sind in /etc/uucp oder in einem Unterverzeichnis davon zu finden. Manche Linux-Distributionen enthalten UUCP-Binaries, die sowohl die HDB- als auch die Taylor-Konfiguration unterstützen, und verwenden verschiedene Unterverzeichnisse für den jeweiligen Satz von Konfigurationsdateien. Eine README-Datei finden Sie üblicherweise in /usr/lib/uucp.
Damit UUCP ordnungsgemäß funktionieren kann, müssen die Dateien dem Benutzer uucp gehören. Einige davon enthalten Paßwörter und Telefonnummern und sollten daher die Zugriffsrechte 600 besitzen. Obwohl fast alle UUCP-Befehle auf Setuid uucp eingestellt sein müssen, gilt das auf gar keinen Fall für uuchk. Andernfalls könnten Benutzer sich die Systempaßwörter ansehen, auch wenn diese auf Zugriffsrecht 600 eingestellt sind.
Die zentrale UUCP-Konfigurationsdatei ist /etc/uucp/config, die zum Setzen allgemeiner Parameter benutzt wird. Der wichtigste (und vorerst einzige) davon ist der UUCP-Name Ihres Hosts. In der virtuellen Brauerei wird vstout als UUCP-Gateway benutzt:
# /etc/uucp/config - Hauptkonfigurationsdatei für UUCP nodename vstout
Die nächste wichtige Konfigurationsdatei ist sys. Sie enthält alle systemspezifischen Informationen zu Sites, mit denen Sie verbunden sind. Das beinhaltet den Namen der Site und Informationen zum Link selbst, beispielsweise die Telefonnummer bei einem Modem-Link. Ein typischer Eintrag für eine über Modem verbundene Site namens pablo würde wie folgt aussehen:
# /usr/lib/uucp/sys - UUCP-Nachbarn benennen # System: pablo system pablo time Any phone 123456 port serial1 speed 38400 chat ogin: vstout ssword: lorca
time gibt die Zeit an, in der das System angerufen werden kann. chat gibt die Login-Chat-Skripten an — die Sequenz von Strings, die ausgetauscht werden müssen, damit uucico sich in pablo einloggen kann. Auf Chat-Skripten kommen wir später noch zurück. Das Schlüsselwort port zeigt einfach auf einen Eintrag in der port-Datei (siehe Abbildung 16.1). Sie können jeden beliebigen Namen verwenden, solange er auf einen gültigen Eintrag in port verweist.
Die port-Datei enthält die Link-spezifischen Informationen. Bei Modem-Links enthält sie die zu verwendende Gerätedatei, die unterstützten Geschwindigkeiten und die an der Schnittstelle angeschlossene Wähleinrichtung. Der nachfolgende Eintrag beschreibt /dev/ttyS1 (also COM 2), woran ein NakWell-Modem angeschlossen ist, das mit einer Geschwindigkeit von bis zu 38400 Bps betrieben werden kann. Der Name des Ports ist so gewählt, daß er mit dem Portnamen aus sys übereinstimmt.
# /etc/uucp/port - UUCP-Ports # /dev/ttyS1 (COM2) port serial1 type modem device /dev/ttyS1 speed 38400 dialer nakwell
Die Informationen zur Wähleinrichtung (Dialer) werden in einer weiteren Datei namens — Sie ahnen es — dial festgehalten. Sie enthält für jeden Wähleinrichtungstyp grundsätzlich eine Reihe von Befehlen, die ausgeführt werden müssen, um eine Gegenstelle anzurufen, deren Telefonnummer angegeben wurde. Auch dies wird in Form eines Chat-Skripts spezifiziert. Der Eintrag für das NakWell-Modem könnte etwa so aussehen:
# /etc/uucp/dial - Wähleinrichtungs-Informationen (je Wähleinrichtung) # NakWell-Modems dialer nakwell chat "" AT&F OK ATDT\T CONNECT
Die mit chat beginnende Zeile bestimmt den Modem-Chat, d.h. die Sequenz von Befehlen, die ans Modem geschickt und vom Modem empfangen wird, um es zu initialisieren und die gewünschte Nummer zu wählen. Die Sequenz \T wird dabei von uucico durch die Telefonnummer ersetzt.
Damit Sie eine grobe Vorstellung davon bekommen, wie uucico mit diesen Konfigurationsdateien umgeht, stellen Sie sich vor, Sie geben folgenden Befehl ein:
$
uucico -s pablo
Zuallererst sucht uucico in der Datei sys nach pablo. Aus dem sys-Eintrag für pablo ersieht es, daß es den Port serial1 verwenden soll, um die Verbindung aufzubauen. Aus der Datei port erfährt es, daß dies ein Modem-Port ist, an den ein NakWell-Modem angeschlossen ist.
uucico durchsucht nun dial nach einem Eintrag, der das NakWell-Modem beschreibt. Nachdem dieser Eintrag gefunden wurde, wird aufgrund dieser Information die serielleSchnittstelle /dev/ttyS1 geöffnet und der Dialer-Chat ausgeführt, also AT&F gesendet, auf die Antwort OK gewartet usw. Wird der String \T erkannt, wird dieser durch die Telefonnummer (123-456) ersetzt, die in der sys-Datei angegeben wurde.
Sobald das Modem CONNECT zurückgeliefert hat, steht die Verbindung, und der Modem-Chat ist komplett. uucico kehrt nun zur sys-Datei zurück und führt den Login-Chat durch. In unserem Beispiel würde es zuerst auf den Prompt login: warten und den Benutzernamen (vstout) senden. Danach würde es auf den Prompt password: warten und das Paßwort (lorca) übertragen.
Nach Abschluß der Autorisierung wird erwartet, daß die Gegenseite ihr eigenes uucico startet. Danach beginnen beide Seiten mit der vorher beschriebenen Handshake-Phase.
Abbildung 16.1 illustriert die Abhängigkeiten der Konfigurationsdateien untereinander.
Abbildung 16.1: Zusammenspiel der Konfigurationsdateien bei Taylor UUCP
Bevor Sie damit beginnen, die UUCP-Konfigurationsdateien zu schreiben, müssen Sie zuerst einige Informationen sammeln, die UUCP benötigt.
Zuerst müssen Sie wissen, an welche serielle Schnittstelle Ihr Modem angeschlossen ist. Normalerweise sind die (DOS-)Schnittstellen COM 1 bis COM 4 auf die Gerätedateien /dev/ttyS0 bis /dev/ttyS3 abgebildet. Einige Distributionen wie z.B. Slackware erzeugen einen Link namens /dev/modem, der auf die entsprechende ttyS*-Gerätedatei zeigt, und konfigurieren kermit, seyon und andere Kommunikationsprogramme so, daß diese Datei benutzt wird. In diesem Fall sollten Sie /dev/modem auch in Ihrer UUCP-Konfiguration verwenden.
Der Grund für die Benutzung eines symbolischen Links liegt darin, daß alle Dialout-Programme die serielle Schnittstelle durch eine sogenannte Lock-Datei sperren, um zu signalisieren, daß sie benutzt wird. Die Namen dieser Lock-Dateien setzen sich aus dem String LCK.. und einem Gerätenamen zusammen, beispielsweise LCK..ttyS1. Wenn Programme für ein und dasselbe Gerät unterschiedliche Namen verwenden, werden die jeweils anderen Lock-Dateien von ihnen nicht erkannt. Folglich kommen sich diese Programme dann gegenseitig in die Quere, wenn sie zur selben Zeit gestartet werden. Dies ist gut möglich, wenn Sie Ihre UUCP-Aufrufe über crontab-Einträge abwickeln. Die Details zur Einrichtung Ihrer seriellen Schnittstellen entnehmen Sie bitte Kapitel 4 Konfiguration der seriellen Hardware.
Als nächstes müssen Sie herausfinden, mit welcher Geschwindigkeit Ihr Modem und Linux kommunizieren. Diese Geschwindigkeit sollten Sie auf die höchstmögliche effektive Übertragungsrate einstellen. Die effektive Übertragungsrate kann dabei wesentlich höher sein als die eigentliche physikalische Übertragungsrate Ihres Modems. Beispielsweise senden und empfangen viele Modems Daten mit 56 Kbps. Durch die Verwendung von Komprimierungsprotokollen wie V.42bis kann die tatsächliche Übertragungsrate auf über 100 Kbps erhöht werden.
Wenn UUCP überhaupt irgend etwas machen soll, müssen Sie natürlich auch die Telefonnummer eines Systems wissen, das angerufen werden soll. Außerdem benötigen Sie eine gültige Login-ID und eventuell ein Paßwort für diese Maschine.1
Sie müssen auch ganz genau wissen, wie Sie sich in das System einloggen. Müssen Sie die Return-Taste drücken, bevor der Login-Prompt erscheint? Wird login:
oder user:
angezeigt? Dies wird für die Erstellung des Chat-Skripts benötigt. Wenn Sie das nicht wissen, oder wenn der normale Chat fehlschlägt, versuchen Sie, das System mit einem Terminal-Programm wie kermit oder minicom anzurufen, und notieren Sie sich ganz genau, was Sie tun müssen.
Genau wie bei TCP/IP-basierten Netzwerken muß Ihr Host auch in UUCP-Netzen einenNamen besitzen. Solange Sie UUCP einfach nur zur Datenübertragung von und zu Sites verwenden wollen, die Sie direkt anwählen, oder in einem lokalen Netzwerk, muß dieser Name keinem Standard entsprechen.2
Wenn Sie UUCP dagegen für einen Mail- oder News-Link verwenden, sollten Sie darüber nachdenken, den Namen vom UUCP Mapping Project registrieren zu lassen.3 Das UUCP Mapping Project wird in Kapitel 17 Elektronische Post, besprochen. Selbst wenn Sie an einer Domain beteiligt sind, sollten Sie einen offiziellen UUCP-Namen für Ihre Site in Erwägung ziehen.
Häufig wird der UUCP-Name so gewählt, daß er dem ersten Teil des voll qualifizierten Domainnamens entspricht. Ist die Domainadresse Ihrer Site etwa swim.twobirds.com, könnte der UUCP-Hostname swim lauten. Stellen Sie sich einfach vor, daß UUCP-Sites einander duzen. Natürlich können Sie auch einen UUCP-Namen verwenden, der mit Ihrem voll qualifizierten Domainnamen nichts zu tun hat.
Achten Sie aber darauf, daß der unqualifizierte Site-Name nicht inMail-Adressen verwendet wird, wenn er nicht als Ihr offizieller UUCP-Name registriert ist. Im besten Fall landet eine Mail an einen nicht registrierten UUCP-Host irgendwo in einem großen schwarzen Sack. Wenn Sie einen Namen verwenden, der bereits von einem anderen Server registriert ist, wird die Mail an diese Site weitergeleitet und deren Postmaster beträchtliche Kopfschmerzen bereiten.
Standardmäßig verwendet das UUCP-Paket den über hostname gesetzten Namen als den UUCP-Namen der Site. Dieser Name wird normalerweise in den rc-Startskripten gesetzt und in der Regel in /etc/hostname gespeichert. Wenn sich Ihr UUCP-Name vom gesetzten Hostnamen unterscheidet, müssen Sie die Option hostname in der config-Datei benutzen, um uucico Ihren UUCP-Namen mitzuteilen. Dies wird nachfolgend beschrieben.
Nun kehren wir wieder zu den Konfigurationsdateien zurück. Taylor UUCP erhält seine Informationen aus den folgenden Dateien:
Das ist die Haupt-Konfigurationsdatei. Hier können Sie den UUCP-Namen Ihrer Site definieren.
Diese Datei beschreibt alle bekannten Sites. Jeder Eintrag spezifiziert den Namen, die Rufzeiten, die Rufnummer (falls vorhanden), den Gerätetyp der Site sowie Angaben zum Login.
Enthält Einträge, die jeden verfügbaren Port beschreiben, zusammen mit der unterstützten Übertragungsgeschwindigkeit und dem zu verwendenden Dialer.
Beschreibt die zum Aufbau einer Telefonverbindung verwendeten Dialer.
Enthält Erweiterungen für symbolische Wählcodes.
Enthält den Login-Namen und das Paßwort, die beim Anruf eines Systems verwendet werden sollen. Wird selten benutzt.
Enthält Login-Namen und Paßwörter, die Systeme beim Einloggen benutzen könnten. Diese Datei wird nur verwendet, wenn uucico seine eigene Paßwortprüfung durchführt.
Taylor-Konfigurationsdateien bestehen normalerweise aus Zeilen, die aus Schlüsselwort/Wert-Paaren bestehen. Das Doppelkreuz (#
) leitet einen Kommentar ein, der bis zum Ende der Zeile reicht. Um ein Doppelkreuz in eigener Bedeutung zu verwenden, müssen Sie ihm einen Backslash voranstellen, z.B. \#
.
Es gibt eine ganze Reihe von Optionen, die Sie über die Konfigurationsdateien einstellen können. Wir können an dieser Stelle nicht alle Parameter besprechen, sondern wollen uns auf die wichtigsten beschränken. Danach sollten Sie in der Lage sein, einen modembasierten UUCP-Link zu konfigurieren. Weitere Abschnitte beschreiben dann die Modifikationen, die notwendig sind, wenn Sie UUCP über TCP/IP oder über eine direkte serielle Leitung verwenden wollen. Eine komplette Referenz finden Sie in den Texinfo-Dokumenten, die den Taylor UUCP-Quellen beiliegen.
Wenn Sie glauben, Ihr UUCP-System vollständig konfiguriert zu haben, können Sie Ihre Konfiguration mit dem uuchk-Tool (zu finden in /usr/lib/uucp) überprüfen. uuchk liest Ihre Konfigurationsdateien und gibt eine detaillierte Liste mit den Konfigurationswerten für jedes System aus.
Für viel mehr als den UUCP-Hostnamen werden Sie diese Datei nicht benutzen. Standardmäßig benutzt UUCP den mit hostname besetzten Namen. Es ist aber grundsätzlich eine gute Idee, den UUCP-Namen hier explizit einzutragen. Nachfolgend eine config-Beispieldatei:
# /usr/lib/uucp/config - UUCP-Haupt-Konfigurationsdatei hostname vstout
Hier kann auch eine Reihe weiterer Parameter stehen, z.B. der Name des Spool-Verzeichnisses oder die Zugriffsrechte für “anonymous UUCP”. Letzteres wird noch in einem späteren Abschnitt beschrieben.
Die sys-Datei beschreibt die Systeme, die Ihrer Maschine bekannt sind. Ein Eintrag beginnt mit dem Schlüsselwort system und umfaßt alle Zeilen bis zur nächsten system-Direktive. Diese Zeilen beschreiben alle für diese Site spezifischen Parameter. Üblicherweise enthält ein Systemeintrag Parameter wie die Telefonnummer und den Login-Chat.
Parameter, die vor der ersten system-Zeile stehen, setzen Standardwerte, die für alle Systeme gelten. Normalerweise enthält dieser Abschnitt solche Einträge wie allgemeine Protokollparameter.
In den folgenden Abschnitten werden die wichtigsten Felder etwas detaillierter besprochen.
Der Befehl system benennt das entfernte System. Sie müssen den richtigen Namen des Systems angeben und keinen erfundenen Alias, da uucico während des Logins diesen Namen mit dem vom entfernten System gelieferten Namen vergleicht.4
Jeder Systemname darf nur einmal vorkommen. Wenn Sie mehrere Konfigurationen für dasselbe System benutzen wollen (beispielsweise verschiedene Telefonnummern, die uucico nacheinander durchprobieren soll), können Sie Alternativen (alternates) beschreiben. Darauf gehen wir im Anschluß an die grundlegenden Konfigurationsoptionen ein.
Wird das entfernte System über eine Telefonleitung erreicht, enthält das Feld phone die vom Modem zu wählende Nummer. Sie kann verschiedene Platzhalter (Tokens) enthalten, die von uucico während der Wählprozedur interpretiert werden. Ein Gleichheitszeichen sorgt dafür, daß auf einen sekundären Wählton gewartet wird; ein Bindestrich sorgt für eine Pause von einer Sekunde. So kommen etwa einige Telefonanlagen ins Stocken, wenn zwischen einem speziellen Zugriffscode und der eigentlichen Telefonnummer nicht eine kurze Pause kommt.5
Aus Komfortgründen werden häufig Länder-Vorwahlnummern mit Namen statt Telefonnummern beschrieben. Die Datei dialcode ermöglicht es Ihnen, den Vorwahlnummern von Remote-Hosts Namen zuzuweisen, die Sie dann für die Einwahl benutzen können. Nehmen wir mal an, Sie hätten die folgende dialcode-Datei:
# /usr/lib/uucp/dialcode - Übersetzung von Vorwahlnummern Bogoham 024881 Coxton 035119
Mit solchen Eintragungen können Sie Telefonnummern wie Bogoham7732 in der sys-Datei verwenden, was die ganze Sache vielleicht etwas leserlicher macht. Vor allem fällt Ihnen ein Update leichter, wenn sich die Vorwahlnummer von Bogoham mal ändern sollte.
Die Optionen port und speed werden benutzt, um zu bestimmen, welches Gerät für die Verbindung zum anderen System verwendet werden soll und mit welcher Geschwindigkeit die Daten über dieses Gerät übertragen werden sollen.6 Ein system-Eintrag kann jeweils eine der beiden Optionen oder beide zusammen enthalten. Wenn in der port-Datei nach einem passenden Eintrag gesucht wird, kommen nur die Ports in Frage, die den passenden Portnamen und/oder die passende Geschwindigkeit haben.
Normalerweise sollte die Option speed ausreichen. Wenn Sie nur ein serielles Gerät in port definiert haben, wird uucico sowieso immer die richtige Wahl treffen, d.h., es genügt, wenn Sie die gewünschte Geschwindigkeit angeben. Selbst wenn Sie mehrere Modems an Ihrem System hängen haben, werden Sie häufig den Ports keinen Namen zuweisen. Wenn nämlich uucico mehrere passende Einträge findet, probiert es jedes Gerät der Reihe nach durch, bis es ein unbenutztes gefunden hat.
Das Login-Chat-Skript, das uucico mitteilt, wie es sich in das entfernte System einzuloggen hat, haben wir ja bereits kennengelernt. Es setzt sich aus einer Reihe von Strings zusammen, die vom lokalen uucico-Prozeß erwartet und übertragen werden. uucico wartet so lange, bis die entfernte Maschine einen Login-Prompt sendet, und überträgt dann den Login-Namen. Danach wird auf den Paßwort-Prompt gewartet und das Paßwort übertragen. Die erwarteten und zu sendenden Strings werden abwechselnd angegeben. uucico hängt automatisch ein Wagenrücklaufzeichen (\r) an jeden zu sendenden String an. Ein einfaches Chat-Skript könnte etwa wie folgt aussehen:
ogin: vstout ssword: catch22
Ihnen wird aufgefallen sein, daß die Felder mit den erwarteten Strings nicht den ganzen Prompt enthalten. Auf diese Weise wird garantiert, daß das Login auch dann erfolgreich ist, wenn das entfernte System die Meldung Login: anstelle von login: ausgibt. Wenn der erwartete oder zu sendende String Leerzeichen oder sonstige Whitespace-Zeichen enthält, müssen Sie ihn in Anführungszeichen setzen.
uucico gestattet auch eine Art bedingter Ausführung, z.B. wenn der getty der entfernten Maschine zuerst zurückgesetzt werden muß, bevor ein Prompt gesendet wird. Zu diesem Zweck können Sie einen “Unter-Chat” an den erwarteten String anhängen, der durch einen Bindestrich abgesetzt wird. Der Unter-Chat wird nur ausgeführt, wenn der Haupt-Chat fehlschlägt, etwa durch einen Timeout-Fehler. Eine Möglichkeit, dieses Feature zu benutzen, besteht darin, einen BREAK an die entfernte Site zu schicken, wenn kein Login-Prompt erscheint. Das folgende Beispiel ist ein universelles Chat-Skript, das auch dann funktionieren sollte, wenn zuerst die Return-Taste gedrückt werden muß, bevor das Login erscheint. Das erste leere Argument (""
) weist UUCP an, nicht erst auf irgend etwas zu warten, sondern den nachfolgenden String direkt zu senden.
"" \n\r\d\r\n\c ogin:-BREAK-ogin: vstout ssword: catch22
In einem Chat-Skript können eine ganze Reihe von speziellen Strings und Escape-Zeichen vorkommen. Nachfolgend ist ein Teil der Sonderzeichen aufgeführt, die in dem zu erwartenden String vorkommen können:
Der leere String. Er weist uucico an, nicht auf einen String zu warten, sondern direkt mit dem Senden des nachfolgenden Strings fortzufahren.
Tabulatorzeichen.
Wagenrücklauf (Carriage Return).
Leerzeichen (Space). Notwendig, um Leerzeichen in Chat-Strings einzubetten.
Zeilenvorschub (Newline).
Umgekehrter Schrägstrich (Backslash).
""
Bei zu sendenden Strings können Sie zusätzlich zu den obigen noch die folgenden Escape-Zeichen und -Strings verwenden:
Zeichen für das Ende der Übertragung (“End of Transmission”, ^D).
Unterbrechungszeichen (Break).
Unterdrückt die Übertragung eines Wagenrücklaufzeichens am Ende des Strings.
Verzögert das Senden um eine Sekunde.
Aktiviert die Überprüfung des Echos. In diesem Fall muß uucico darauf warten, daß alles, was es an die Gegenseite geschickt hat, auch zurückgeschickt wird, bevor es im Chat-Skript weitergeht. Hauptsächlich bei Modem-Chats sinnvoll (denen wir später noch begegnen werden). Standardmäßig ist die Echoprüfung ausgeschaltet.
Deaktiviert die Echoprüfung.
Wie BREAK.
Pause für einen Sekundenbruchteil.
Manchmal ist es wünschenswert, für ein System mehrere Einträge zu haben, beispielsweise wenn das System übermehrere Telefonnummern erreicht werden kann. Bei Taylor UUCP ist dies durch die Definition sogenannter Alternativen (Alternates) möglich.
Eine Alternative übernimmt alle Einstellungen vom Haupteintrag und gibt nur solche Werte an, die überschrieben oder dem Haupteintrag hinzugefügt werden sollen. Eine Alternative ist vom Systemeintrag durch eine Zeile mit dem Schlüsselwort alternate abgesetzt.
Wenn Sie zwei Telefonnummern für pablo benutzen wollen, können Sie den entsprechenden sys-Eintrag folgendermaßen verändern:
system pablo phone 123456 ... Einträge wie oben... alternate phone 123455
Für einen Anruf von pablo verwendet uucico zuerst die Nummer 123456. Schlägt dies fehl, versucht es die Alternative. Der alternative Eintrag behält alle Einstellungen des Haupteintrags bei und überschreibt nur die Telefonnummer.
Taylor UUCP bietet eine ganze Reihe von Möglichkeiten, die Zeiten einzuschränken, in denen Anrufe zum entfernten Rechner durchgeführt werden können. Dies könnte notwendig sein, wenn ein Host seine Dienste zu bestimmten Zeiten einschränkt. Sie können so aber auch Zeiten ausschließen, in denen die Telefongebühren relativ hoch sind. Rufzeiteinschränkungen können jedoch immer überschrieben werden, indem Sie uucico mit den Optionen –S oder –f aufrufen.
Standardmäßig unterbindet Taylor UUCP den Verbindungsaufbau zu allen Zeiten, d.h., Sie müssen Zeitangaben in irgendeiner Form in Ihre sys-Datei aufnehmen. Wenn Zeitbeschränkungen für Sie kein Thema sind, können Sie in der sys-Datei die Option time mit dem Wert Any belegen.
Den einfachsten Weg, die Rufzeit einzuschränken, bietet der Eintrag time, dem ein String folgt, der aus einem Tag- und einem Zeit-Feld besteht. Das Tag-Feld kann eine Kombination aus Mo, Tu, We, Th, Fr, Sa, Su oder den Schlüsselwörtern Any, Never oder Wk (für Werktags) enthalten. Das Zeit-Feld besteht aus zwei Werten im 24-Stunden-Format, die durch einen Bindestrich voneinander getrennt sind. Sie bestimmen den Zeitraum, in dem Anrufe durchgeführt werden können. Kombinationen dieser Strings werden immer ohne Leerzeichen angegeben. Mehrere Datum- und Zeitspezifikationen können durch Kommata zusammengefaßt werden, wie das folgende Beispiel zeigt:
time MoWe0300-0730,Fr1805-2200
Dieses Beispiel erlaubt Anrufe Montags und Mittwochs von 3 Uhr bis 7:30 Uhr morgens und Freitags zwischen 6:05 Uhr und 22 Uhr. Überschreitet eine Zeitangabe die Mitternachtsgrenze, z.B. Mo1830-0600, wird dies als Montag zwischen Mitternacht und 6 Uhr morgens sowie zwischen 18:30 und Mitternacht interpretiert.
Die speziellen Zeit-Strings Any und Never tun genau, was Sie von ihnen erwarten: Anrufe können zu beliebigen Zeiten bzw. überhaupt nicht getätigt werden.
Taylor UUCP kennt auch eine Reihe spezieller Kürzel, die Sie in Zeitangaben verwenden können, zum Beispiel NonPeak und Night, die Abkürzungen für Any2300-0800,SaSu0800-1700 und Any1800-0700,SaSu darstellen.
Dem Befehl time kann optional ein zweites Argument folgen, das die Wahlwiederholung in Minuten enthält. Schlägt ein Verbindungsversuch fehl, verhindert uucico für einen bestimmten Zeitraum eine erneute Anwahl des entfernten Hosts. Legen Sie etwa ein Wiederholungsintervall von 5 Minuten fest, verweigert uucico nach dem letzten Fehler den Anruf des entfernten Hosts für die Dauer von 5 Minuten. Standardmäßig arbeitet uucico mit einem Schema, bei dem sich das Wiederholungsintervall mit jedem Fehlversuch exponentiell erhöht.
Mit dem Befehl timegrade können Sie die maximale Spool-Klasse für einen Zeitplan festlegen. Nehmen wir an, Sie hätten die folgenden timegrade-Befehle in einen system-Eintrag aufgenommen:
timegrade N Wk1900-0700,SaSu timegrade C Any
Auf diese Weise können Jobs mit einer Spool-Klasse von C oder höher (üblicherweise hat Mail die Klasse B oder C) bei jedem Anruf übertragen werden. News (üblicherweise Klasse N) dagegen werden nur nachts und an Wochenenden übertragen.
Genau wie time akzeptiert auch timegrade ein Wiederholungsintervall in Minuten als optionales drittes Argument.
Hier ist jedoch ein warnendes Wort zu den Spool-Klassen angebracht. Zuerst einmal gilt die Option timegrade nur für das, was Ihr System überträgt. Die Gegenseite kann immer noch alles übertragen, was sie will. Sie können die Option call-timegrade verwenden, um das andere System aufzufordern, nur Jobs ab einer bestimmten Klasse zu übertragen. Es garantiert Ihnen aber niemand, daß der andere Host sich tatsächlich daran hält.7
Außerdem wird das Feld timegrade
nicht überprüft, wenn sich ein entferntes System bei Ihnen einwählt, d.h., alle aufgelaufenen Jobs für dieses System werden übertragen. Jedoch kann das andere System Ihr uucico explizit auffordern, sich auf eine bestimmte Spool-Klasse zu beschränken.
Die Datei port klärt uucico über die vorhandenen Ports auf. Dabei kann es sich um Modem-Ports handeln, aber auch andere Arten wie direkte serielle Leitungen und TCP-Sockets werden unterstützt.
Genau wie die sys-Datei besteht auch port aus separaten Einträgen, die mit dem Schlüsselwort port beginnen, dem der Portname folgt. Dieser Name kann im port-Befehl der sys-Datei genutzt werden. Der Name muß nicht eindeutig sein. Existieren verschiedene Ports mit demselben Namen, probiert uucico jeden einzelnen, bis es einen findet, der momentan nicht benutzt wird.
Dem port-Befehl sollte unmittelbar der type-Befehl folgen, der anzeigt, welche Art von Port beschrieben wird. Gültige Typen sind modem, direct für direkte Verbindungen und tcp für TCP-Sockets. Fehlt der port-Befehl, ist der Porttyp auf Modem voreingestellt.
In diesem Abschnitt werden nur Modem-Ports behandelt; TCP-Ports und direkte Leitungen werden in einem späteren Abschnitt besprochen.
Bei Modems und direkten Ports müssen Sie das Gerät angeben, über das “nach draußen” gewählt wird. Dazu dient der Befehl device. Üblicherweise handelt es sich dabei um eine spezielle Gerätedatei im /dev-Verzeichnis, wie etwa /dev/ttyS1.
Im Fall eines Modems bestimmt der Porteintrag auch, welche Art von Modem an den Port angeschlossen ist. Unterschiedliche Modems müssen auch verschieden konfiguriert werden. Selbst angeblich Hayes-kompatible Modems müssen nicht wirklich untereinander kompatibel sein. Darum müssen Sie uucico mitteilen, wie das Modem zu initialisieren ist und wie es die gewünschte Nummer wählen soll. Taylor UUCP bewahrt die Beschreibungen aller Dialer in einer Datei namens dial auf. Soll eine dieser Beschreibungen verwendet werden, müssen Sie den Namen des Dialers mit dem Befehl dialer angeben.
Manchmal möchten Sie ein Modem auch auf verschiedene Arten einsetzen, je nachdem, welches System Sie anrufen. So verstehen es beispielsweise einige ältere Modems nicht, wenn ein Highspeed-Modem versucht, eine Verbindung mit 56 Kbps aufzubauen; sie hängen einfach auf, anstatt die Verbindung mit einer Geschwindigkeit von 9.600 Bps aufzubauen. Wenn Sie wissen, daß die Site drop ein solch einfaches Modem benutzt, müssen Sie Ihr Modem anders einstellen, wenn Sie die Site anwählen. Dazu müssen Sie einen zusätzlichen Porteintrag in Ihrer port-Datei angeben, der einen anderen Dialer benutzt. Jetzt können Sie dem neuen Port einen anderen Namen, wie etwa serial1-slow, geben und die port-Direktive im drop-Systemeintrag in sys verwenden.
Eine bessere Möglichkeit besteht darin, die Ports anhand der von ihnen unterstützten Geschwindigkeiten zu unterscheiden. Die beiden Porteinträge für die eben beschriebene Situation könnten dann wie folgt aussehen:
# NakWell-Modem; Highspeed-Verbindungen port serial1 # Portname type modem # Modem-Port device /dev/ttyS1 # COM2 speed 115200 # unterstützte Geschwindigkeit dialer nakwell # normaler Dialer # NakWell-Modem; langsame Verbindung port serial1 # Portname type modem # Modem-Port device /dev/ttyS1 # COM2 speed 9600 # unterstützte Geschwindigkeit dialer nakwell-slow # hohe Geschwindigkeit gar nicht erst versuchen
Der Systemeintrag für drop würde nun serial1 als Portnamen enthalten, aber nur eine Geschwindigkeit von 9.600 Bps erlauben. uucico würde dann automatisch den zweiten Porteintrag benutzen. Für alle anderen Sites, die eine Geschwindigkeit von 115.200 Bps in ihrem Systemeintrag angeben, würde weiterhin der erste Porteintrag verwendet werden. Standardmäßig wird der erste Eintrag mit passender Geschwindigkeit benutzt.
Die Datei dial beschreibt, wie die verschiedenen Dialer verwendet werden. Traditionell spricht man bei UUCP von Dialern und nicht von Modems, weil es früher gängige Praxis war, daß eine (teure) automatische Wähleinrichtung für eine ganze Reihe von Modems genutzt wurde. Heutzutage verfügen die meisten Modems über eingebaute Wahlunterstützung, d.h., diese Unterscheidung ist ein wenig überholt.
Dessen ungeachtet können verschiedene Dialer oder Modems auch verschiedene Konfigurationen benötigen. Diese können Sie in der Datei dial beschreiben. Einträge in dial beginnen mit dem Befehl dialer, der den Namen des Dialers festlegt.
Der wichtigste Eintrag neben dialer ist der Modem-Chat, der über den Befehl chat spezifiziert wird. Genau wie beim Login-Chat besteht er aus einer Reihe von Strings, die uucico an den Dialer sendet, und den Antworten, die er daraufhin erwartet. Dieser Befehl wird normalerweise verwendet, um das Modem in einen definierten Zustand zurückzusetzen und die gewünschte Nummer zu wählen. Der folgende dialer-Eintrag zeigt einen typischen Modem-Chat für ein Hayes-kompatibles Modem:
# NakWell-Modem; Highspeed-Verbindung dialer nakwell # Dialer-Name chat "" AT&F OK\r ATH1E0Q0 OK\r ATDT\T CONNECT chat-fail BUSY chat-fail ERROR chat-fail NO\sCARRIER dtr-toggle true
Der Modem-Chat beginnt mit ""
, dem “leeren” String. uucico sendet also direkt den Befehl AT&F an das Modem. AT&F ist der Hayes-Befehl zum Rücksetzen des Modems. Nun wartet uucico, bis das Modem OK
zurückschickt, und setzt dann den nächsten Befehl ab, der das lokale Echo ausschaltet usw. Nachdem das Modem wieder mit OK
antwortet, sendet uucico den Wählbefehl ATDT. Die Escape-Sequenz \T
wird dabei durch die Telefonnummer ersetzt, die im Systemeintrag der sys-Datei gefunden wurde. uucico wartet dann darauf, daß das Modem die Zeichenkette CONNECT
zurückschickt, was signalisiert, daß die Verbindung mit dem entfernten Modem erfolgreich aufgebaut werden konnte.
Natürlich passiert es auch, daß die Verbindung mit dem entfernten System nicht zustande kommt, beispielsweise, weil das andere System gerade mit jemand anderem kommuniziert und die Leitung besetzt ist. In einem solchen Fall gibt das Modem eine entsprechende Fehlermeldung zurück. Modem-Chats sind nicht in der Lage, solche Meldungen aufzuspüren; uucico wartet weiter auf den erwarteten String, bis ein Timeout erfolgt. In der UUCP-Logdatei erscheint daher nur die nichtssagende Meldung “timed out in chat script” und nicht die eigentliche Fehlerursache.
Bei Taylor UUCP können Sie aber uucico über diese Fehlermeldungen informieren, indem Sie den Befehl chat-fail wie oben gezeigt verwenden. Erkennt uucico einen chat-fail-String während der Ausführung des Modem-Chats, bricht es den Anruf ab und speichert die Fehlermeldung in der UUCP-Logdatei.
Der letzte Befehl im obigen Beispiel weist UUCP an, den Zustand der Steuerleitung DTR (Data Terminal Ready) umzuschalten, bevor der Modem-Chat beginnt. Normalerweise aktiviert der serielle Treiber DTR, wenn ein Prozeß das Gerät öffnet, um dem angeschlossenen Modem mitzuteilen, daß jemand mit ihm reden möchte. Mit dtr-toggle setzen Sie DTR für kurze Zeit auf Low und dann wieder auf High. Viele Modems können so konfiguriert werden, daß sie beim Heruntersetzen von DTR auflegen, in den Befehlsmodus gehen oder sich selbst zurücksetzen.8
So absurd es auch klingen mag, so ist die Verwendung von UUCP zur Datenübertragung über TCP keine so schlechte Idee, besonders wenn große Datenmengen wie Usenet-News übertragen werden sollen. In TCP-basierten Verbindungen werden News im allgemeinen über das NNTP-Protokoll übertragen, womit Artikel individuell ohne Komprimierung und andere Optimierungen angefordert und übertragen werden. Wenn dies für große Sites mit mehreren simultanen Newsfeeds auch angemessen sein mag, so ist dies für kleinere Sites mit langsameren Verbindungen wie z.B. ISDN doch sehr unvorteilhaft. Diese Sites werden im allgemeinen die Qualitäten von TCP mit den Vorteilen verknüpfen wollen, News in großen Paketen zu verschicken, die komprimiert und so mit sehr geringem Overhead übertragen werden können. Eine Standardlösung, um solche Batches zu übertragen, besteht in der Verwendung von UUCP über TCP.
In sys würden Sie ein System, das über TCP angerufen wird, wie folgt beschreiben:
system gmu address news.groucho.edu time Any port tcp-conn chat ogin: vstout word: clouseau
Der Befehl address ermittelt die IP-Adresse des Hosts oder seinen voll qualifizierten Domainnamen. Der entsprechende port-Eintrag liest sich wie folgt:
port tcp-conn type tcp service 540
Der Eintrag legt fest, daß eine TCP-Verbindung verwendet werden soll, wenn ein sys-Eintrag auf tcp-conn Bezug nimmt. Außerdem soll uucico versuchen, die Verbindung mit dem entfernten Host über den TCP-Netzwerk-Port 540 herzustellen. Das ist die Standardportnummer des UUCP-Dienstes. Anstelle der Portnummer können Sie auch einen symbolischen Portnamen an den service-Befehl übergeben. Die zu diesem Namen passende Portnummer wird in der Datei /etc/services nachgeschlagen. Der für den UUCP-Dienst übliche Name lautet uucpd.
Stellen Sie sich vor, Sie verwenden eine Direktleitung von Ihrem System vstout zum System tiny. Genau wie bei einem Modem müssen Sie einen entsprechenden Systemeintrag in Ihre sys-Datei aufnehmen. Der Befehl port gibt dabei den seriellen Port an, über den tiny angesprochen wird.
system tiny time Any port direct1 speed 38400 chat ogin: cathcart word: catch22
In der port-Datei müssen Sie den seriellen Port für diese direkte Verbindung beschreiben. Ein dialer-Eintrag ist nicht nötig, da zum Wählen ja keine Veranlassung besteht.
port direct1 type direct speed 38400 device /dev/ttyS1
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser für Netzwerker
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2001, O'Reilly Verlag