Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ oldrdist(1M) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

csh(1)

sh(1)

stat(2)

oldrdist(1M)                                                   oldrdist(1M)

NAME
     oldrdist - Programm zur Verteilung von Dateien

SYNTAX
     /usr/ucb/oldrdist [-nqbRhivwyD] [-f distfile] [-d var=value] [-m host]
                       [name ...]

     /usr/ucb/oldrdist [-nqbRhivwyD] -c name ... [login@]host[:dest]

BESCHREIBUNG
     oldrdist ist ein Programm zur Verwaltung identischer Kopien von
     Dateien, die auf mehrere Hosts verteilt sind. Es speichert wenn mög-
     lich den Eigentümer, die Gruppe, den Modus und die Änderungszeit von
     Dateien und kann ausgeführte Programme aktualisieren. oldrdist liest
     Kommandos aus distfile für die Aktualisierung von Dateien und/oder
     Verzeichnissen.

OPTIONEN
     Optionen für die erste Syntaxform:

     -f   Die angegebene Datei distfile verwenden. Wenn distfile gleich -
          ist, wird die Standardeingabe verwendet.

          Wenn weder die Option -f noch die Option - angegeben wird, sucht
          das Programm zuerst nach distfile und dann nach Distfile, um
          diese Datei als Eingabe zu verwenden.

     Wenn keine Namen (names ...) in der Kommandozeile angegeben werden,
     aktualisiert oldrdist alle Dateien und Verzeichnisse, die in distfile
     aufgeführt sind. Andernfalls werden die Angaben für names ... als die
     Namen der zu aktualisierenden Dateien oder Labels auszuführender Kom-
     mandos interpretiert. Bei einem Konflikt zwischen Label- und Dateina-
     men, wird von einem Label ausgegangen. Label- und Dateinamen können
     zusammen verwendet werden, um bestimmte Dateien mit bestimmten Komman-
     dos zu aktualisieren.

     Optionen für die zweite Syntaxform:

     -c   Erzwingt, daß oldrdist die restlichen Argumente als eine kurze
          distfile interpretiert. Die entsprechende distfile hierzu ist:

          ( name ... ) -> [login@]host
                 install [dest] ;

     Optionen, die für beide Syntaxformen gelten:

     -b   Binärvergleich. Einen Binärvergleich durchführen und die Dateien
          bei Unterschieden aktualisieren, anstatt Datumsangaben und Größen
          der Dateien zu vergleichen.

     -D   Den Fehlersuchmodus (debug) aktivieren.




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

oldrdist(1M)                                                   oldrdist(1M)

     -d   Die Variable var wird so definiert, daß sie den Wert value
          annimmt. Die Option -d wird zum Definieren von Variablen oder
          Überschreiben von Variablendefinitionen in der distfile verwen-
          det. value kann eine leere Zeichenkette, ein Name oder eine Liste
          mit Namen sein, die in Klammern stehen und durch Tabulator-
          und/oder Leerzeichen getrennt sind.

     -h   Symbolische Links verfolgen. Kopiert nicht den Link selbst, son-
          dern die Datei, auf die der Link verweist.

     -i   Nicht aufgelöste Links ignorieren. Normalerweise versucht
          oldrdist die Link-Struktur der übertragenen Dateien aufrechtzuer-
          halten und warnt den Benutzer, wenn nicht alle Links gefunden
          werden.

     -m   Die Aktualisierung auf bestimmte Rechner begrenzen. Mehrere Argu-
          mente -m können angegeben werden, um die Aktualisierungen auf
          eine Untermenge der in distfile aufgeführten Hosts zu begrenzen.

     -n   Die Kommandos ausgeben, ohne sie auszuführen. Diese Option bietet
          sich für die Fehlersuche in distfile an.

     -q   Quiet-Modus. Dateien, die geändert werden, werden normalerweise
          auf die Standardausgabe geschrieben. Mit der Option -q wird dies
          unterdrückt.

     -R   Nicht zugehörige Dateien entfernen. Bei der Aktualisierung eines
          Verzeichnisses werden Dateien, die auf dem fernen Host, jedoch
          nicht im Master-Verzeichnis vorliegen, entfernt. Diese Option
          bietet sich an, wenn identische Verzeichniskopien geführt werden
          sollen.

     -v   Prüfen, ob die Dateien auf allen Hosts auf dem neuesten Stand
          sind. Veraltete Dateien werden angezeigt, es werden jedoch weder
          Dateien geändert noch entsprechende Mail gesendet.

     -w   Whole-Modus. Der vollständige Dateiname wird an den Namen des
          Zielverzeichnisses angehängt. Normalerweise wird beim Umbenennen
          von Dateien nur die letzte Komponente eines Namens verwendet.
          Hierdurch bleibt die Verzeichnisstruktur der kopierten Dateien
          erhalten und wird nicht geglättet. Beim Umbenennen einer Dateili-
          ste wie ( dir1/f1 dir2/f2 ) in dir3 würden beispielsweise die
          Dateien dir3/dir1/f1 und dir3/dir2/f2 anstelle von dir3/f1 und
          dir3/f2 erstellt.

     -y   Younger-Modus. Dateien werden normalerweise aktualisiert, wenn
          mtime und size [siehe stat(2)] nicht zueinander passen. Bei der
          Option -y führt oldrdist keine Aktualisierung der Dateien durch,
          die aktueller als die Master-Kopie sind. Hiermit kann verhindert
          werden, daß neuere Kopien auf anderen Hosts ersetzt werden. Für
          Dateien, die neuer als die Master-Kopie sind, wird eine Warnmel-
          dung ausgegeben.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

oldrdist(1M)                                                   oldrdist(1M)

     distfile enthält eine Folge von Einträgen, die die zu kopierenden
     Dateien, die Zielhosts und die jeweilige Operation zur Durchführung
     der Aktualisierung angeben. Jeder Eintrag hat eines der folgenden For-
     mate:

          variablename = namelist
          [label:] sourcelist -> destinationlist commandlist
          [label:] sourcelist :: timestampfile commandlist

     Das erste Format wird zum Definieren von Variablen verwendet. Das
     zweite Format dient zur Verteilung der Dateien auf andere Hosts. Das
     dritte Format wird zum Erstellen von Listen der Dateien verwendet, die
     sich seit einem bestimmten Datum geändert haben. sourcelist gibt eine
     Liste der Dateien und/oder Verzeichnisse auf dem lokalen Host an, die
     als Master-Kopie für die Verteilung dienen sollen. destinationlist
     ist die Liste der Hosts, auf die diese Dateien kopiert werden sollen.
     Jede Datei in der Quelliste sourcelist wird in eine Änderungsliste
     aufgenommen, wenn die Datei auf dem Host, der aktualisiert werden soll
     (zweites Format), veraltet ist, oder wenn die Datei neuer als die
     Zeitmarkendatei timestampfile (drittes Format) ist.

     Labels sind optional. Sie werden zur Kennzeichnung eines Kommandos für
     Teilaktualisierungen verwendet.

     Zeilenvorschub-, Tabulator- und Leerzeichen werden nur als Trennzei-
     chen verwendet und ansonsten ignoriert. Kommentare beginnen mit einem
     # und enden mit einem Zeilenvorschub.

     Variablen, die erweitert werden sollen, beginnen mit $ gefolgt von
     einem Zeichen oder einem Namen in geschweiften Klammern (siehe auch
     das Beispiel am Ende).

     Die Quell- und Ziellisten haben folgendes Format:

          name

     oder

          ( zeroormorenamesseparatedbywhite-space )

     Die Shell-Metazeichen [, ], {, }, * und ? werden (nur auf dem lokalen
     Host) auf gleiche Weise wie csh(1) erkannt und erweitert. Sie können
     mit einem Backslash als Escape-Zeichen verwendet werden. Das Zeichen ~
     wird ebenfalls auf dieselbe Weise wie csh erweitert, jedoch separat
     auf dem lokalen Host und dem Zielhost. Wenn die Option -w mit einem
     Dateinamen verwendet wird, der mit ~ beginnt, werden alle Angaben bis
     auf das Home-Verzeichnis an den Zielnamen angehängt. Dateinamen, die
     nicht mit / oder ~ beginnen, verwenden das Home-Verzeichnis des Ziel-
     benutzers als das Root-Verzeichnis für den Rest des Dateinamens.

     Die Kommandoliste enthält keine oder mehrere Kommandos im folgenden
     Format:


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

oldrdist(1M)                                                   oldrdist(1M)

          install      options        optdestname ;
          notify       namelist      ;
          except       namelist      ;
          exceptpat   patternlist   ;
          special      namelist      string ;

     Das Kommando install wird zum Kopieren veralteter Dateien und/oder
     Verzeichnisse verwendet. Jede Quelldatei wird auf jeden Host in der
     Zielliste kopiert. Verzeichnisse werden rekursiv in gleicher Weise
     kopiert. optdestname ist ein optionaler Parameter zum Umbenennen von
     Dateien. Wenn kein Kommando install in der Kommandoliste enthalten
     ist, oder der Zielname nicht angegeben wird, wird der Name der Quell-
     datei verwendet. Verzeichnisse im Pfadnamen werden neu erstellt, wenn
     sie auf dem fernen Host noch nicht vorliegen. Um "Katastrophen" zu
     vermeiden, wird ein nicht leeres Verzeichnis auf einem Zielhost nie-
     mals durch eine reguläre Datei oder einen symbolischen Link ersetzt.
     Bei der Option -R wird ein nicht leeres Verzeichnis allerdings ent-
     fernt, wenn der zugehörige Dateiname auf dem Master-Host vollständig
     fehlt. Die Optionen (options) sind -R, -h, -i, -v, -w, -y und -b und
     haben die gleiche Bedeutung wie die Optionen in der Kommandozeile, mit
     der Ausnahme, daß sie nur für die Dateien in der Quelliste gelten. Der
     auf dem Zielhost verwendete Anmeldename entspricht dem Anmeldenamen
     auf dem lokalen Host, sofern der Zielname nicht das Format login@host
     aufweist.

     Das Kommando notify dient zum Senden der Liste der aktualisierten
     Dateien (sowie eventuell aufgetretener Fehler) an die aufgeführten
     Namen. Wenn kein @ im Name enthalten ist, wird der Name des Zielhosts
     an den Namen angehängt (zum Beispiel name1@host, name2@host, ...).

     Das Kommando except dient zum Aktualisieren aller Dateien in der Quel-
     liste, mit Ausnahme der in namelist angegebenen Dateien. Dieses Kom-
     mando wird normalerweise verwendet, um alles bis auf bestimmte Dateien
     in einem Verzeichnis zu kopieren.

     Das Kommando exceptpat gleicht dem Kommando except, nur daß hier
     patternlist eine Liste der regulären Ausdrücke ist. [Näheres hierzu
     finden Sie unter ed(1).] Wenn eines der Muster mit einer Zeichenkette
     innerhalb eines Dateinamens übereinstimmt, wird diese Datei ignoriert.
     Da \ ein Maskierungszeichen ist, muß es doppelt angegeben werden, um
     Teil des regulären Ausdrucks zu werden. Variablen werden in
     patternlist zwar erweitert, nicht jedoch Shell-Dateimuster, die Zei-
     chen entsprechen. Soll ein $ aufgenommen werden, muß es mit dem
     Escape-Zeichen \ versehen werden.

     Das Kommando special dient zur Angabe von sh(1)-Kommandos, die auf dem
     fernen Host ausgeführt werden sollen, nachdem die Datei in namelist
     aktualisiert oder installiert worden ist. Wird namelist nicht angege-
     ben, so werden die Shell-Kommandos für jede aktualisierte oder instal-
     lierte Datei ausgeführt. Die Shell-Variable $FILE wird auf den aktuel-
     len Dateinamen gesetzt, bevor die Kommandos in string ausgeführt



Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

oldrdist(1M)                                                   oldrdist(1M)

     werden. string beginnt und endet mit " und kann über mehrere Zeilen in
     distfile gehen. Mehrere Kommandos für die Shell sollten durch ein ;
     getrennt werden. Kommandos werden im Home-Verzeichnis des Benutzers
     auf dem Host ausgeführt, der aktualisiert werden soll. Mit dem Kom-
     mando special können private Datenbanken und Ähnliches nach der Aktua-
     lisierung eines Programms neu aufgebaut werden.

     Es folgt ein kurzes Beispiel:

          HOSTS = ( matisse root@arpa)

          FILES = ( /bin /lib /usr/bin /usr/games
                /usr/include/{*.h,{stand,sys,vax*,pascal,machine}/*.h}
                /usr/lib /usr/man/man? /usr/ucb /usr/local/oldrdist )

          EXLIB = ( Mail.rc aliases aliases.dir aliases.pag crontab dshrc
                sendmail.cf sendmail.fc sendmail.hf sendmail.st uucp vfont )

          ${FILES} -> ${HOSTS}
                install -R ;
                except /usr/lib/${EXLIB} ;
                except /usr/games/lib ;
                special /usr/lib/sendmail "/usr/lib/sendmail -bz" ;

          srcs:
          /usr/src/bin -> arpa
                exceptpat ( \\.o\$ /SCCS\$ ) ;

          IMAGEN = (ips dviimp catdvi)

          imagen:
          /usr/local/${IMAGEN} -> arpa
                install /usr/local/lib ;
                notify ralph ;

          ${FILES} :: stamp.cory
                notify root@cory ;

DIAGNOSE
     Eine Beschwerde bezüglich nicht übereinstimmender Versionsnummern von
     oldrdist ist möglicherweise auf ein Problem beim Starten Ihrer Shell
     zurückzuführen (zum Beispiel bei zu vielen Gruppen).

HINWEISE
     Quelldateien müssen sich auf dem lokalen Host befinden, auf dem
     oldrdist ausgeführt wird.

     Es gibt keine einfache Möglichkeit zur Ausführung eines bestimmten
     Kommandos, nachdem alle Dateien in einem Verzeichnis aktualisiert wor-
     den sind.




Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

oldrdist(1M)                                                   oldrdist(1M)

     Die Variablenerweiterung funktioniert nur für Namenslisten; eine all-
     gemeine Makrofunktion sollte vorhanden sein.

     oldrdist bricht bei Dateien mit einer Änderungszeit, die vor dem 1.
     Januar 1970 UTC liegt, ab.

     Wenn oldrdist auf eine Datei angewendet wird, für die jemand anderes
     die Eigentumsrechte besitzt, ändert oldrdist den Eigentümer/die Gruppe
     des Ziels (durch chown) nur dann, wenn Sie über Superuser-Rechte ver-
     fügen.

DATEIEN
     distfile
          Eingabekommandodatei

     /tmp/oldrdist*
          Temporäre Datei zur Listenaktualisierung

SIEHE AUCH
     csh(1), sh(1), stat(2).


































Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026