Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« dump Datensicherung cpio »

Unterabschnitte
  • Zusammensetzung des tar-Kommandos
  • Die Steuerungsdatei /etc/default/tar
    • Netzwerksicherung per tar

tar (tape archiver)

Trotz seines Namens kann tar nicht nur mit dem Band, sondern auch mit Disketten, Wechselmedien und sogar Dateien als Ziel arbeiten. Der Vorteil von tar ist seine weite Verbreitung und Verfügbarkeit. tar wurde im Laufe der Jahre weiterentwickelt. Die Vorteile von tar sind:

  • tar ist auf jeder Maschine verfügbar. Es gibt sogar einige Implementierungen auf anderen Betriebssystemen.
  • tar ist eine ausgetestete Software.
  • tar kann eine Sicherung über mehrere Medien verteilen
  • tar ist in vielen Implementierungen netzwerkfähig.

Die Nachteile von tar sind:

  • tar kann (in seiner Grundversion) keine Gerätedateien und andere spezielle Dateien sichern, ist also nicht für die Systemsicherung geeignet.
  • tar ist unflexibel bei der Rücksicherung einzelner Dateien.

Zusammensetzung des tar-Kommandos

Nach dem Befehl tar bestimmt der erste Buchstabe, welche Operation ausgeführt wird. Hier muss einer der Buchstaben c, x oder t auftauchen. Dabei bedeutet:

[Operationsoptionen von tar]C|L Zeichen & Bedeutung
c & Erzeuge ein Archiv
x & Entpacke ein Archiv
t & Lies das Inhaltsverzeichnis eines Archivs

Bei den eigentlichen Optionen sind die folgenden von Bedeutung:

  • [f sicherungsdatei] Mit f wird angegeben, dass die Sicherung in eine Datei erfolgen soll. Als Dateiname wird dann die Sicherungsdatei oder das Device angegeben, auf das gesichert werden soll.

  • [v] zeigt alle gesicherten Dateien an. Daraus lässt sich leicht ein Sicherungsprotokoll erstellen.

  • [z oder Z] gibt an, dass das Archiv komprimiert wird. Dadurch passt natürlich mehr auf das Band. Bei Maschinen mit schwacher CPU-Leistung ist allerdings zu prüfen, ob der Aufwand für die Komprimierung das Schreiben so weit verzögert, dass der Datenstrom abreißt. Das hat beim direkten Schreiben auf Bänder den Effekt, dass die Datensicherung um ein Vielfaches länger dauert. Bandgeräte brauchen einen möglichst kontinuierlichen Dateninput. Sobald eine Unterbrechung stattfindet, muss das Band stoppen, kurz zurückfahren, neu positionieren, um dann wieder zu starten, wenn neue Daten eintreffen.

  • [M] arbeitet mit Medienwechsel. Ist beim Sichern das Medium voll, wird der Benutzer aufgefordert, das Medium zu wechseln und die Returntaste zu drücken. Beim Rücksichern werden die erforderlichen Medien automatisch angefordert.

Als Beispiel soll hier das Verzeichnis /home gesichert werden. Ohne weitere Angabe verwendet tar das Standardbandgerät:

# cd /home
# tar cv .
a ./tacoss symbolic link to /users/tacoss
a ./willemer symbolic link to /users/willemer
a ./notes/.sh_history 4 blocks
a ./notes/.profile 1 blocks
a ./notes/server symbolic link to /opt/lotus/bin/server
a ./notes/.Xpdefaults 2 blocks
a ./notes/ console.tmp 1 blocks
a ./rossow/.sh_history 1 blocks
a ./rossow/.rhosts 1 blocks
a ./arnold/.cshrc 2 blocks
a ./arnold/.exrc 1 blocks
a ./arnold/.login 1 blocks
a ./arnold/.profile 1 blocks
a ./arnold/.sh_history 5 blocks
a ./arnold/.rhosts 1 blocks
a ./arnold/bad.tif 1813 blocks
a ./arnold/a.out 41 blocks
a ./arnold/hello.cpp 1 blocks
a ./arnold/.history 1 blocks
#

Die vorangegangene Ausgabe von tar zeigt, dass diese Version von tar relative Pfade abspeichert. Manche Versionen speichern immer den absoluten Pfad. Sollen die Dateien beim Restaurieren an eine andere Stelle kommen, empfielt es sich, die Option A zu probieren. Sie entfernt bei solchen Systemen normalerweise den führenden Schrägstrich beim Sichern und Zurücksichern.

Das Zurückholen aller Dateien ist relativ einfach. Man wechselt per cd in das Zielverzeichnis und ruft tar mit der Option x auf. Wer sehen möchte, was zurückgeholt wird, gibt noch zusätzlich ein v an.

Sollen dagegen bestimmte Dateien zurückgeholt werden, ist das etwas komplizierter. Hinter tar xv kann man die gewünschten Dateien angeben, die man zurückholen möchte. Allerdings wünscht sich tar den kompletten Pfad, so wie er beim Sichern angegeben wurde. Will man also die Datei arnold/hello.cpp zurückholen, lautet der Befehl:

# tar xv ./arnold/hello.cpp
x ./arnold/hello.cpp, 64 bytes, 1 tape blocks
#

Dagegen scheitert der Versuch, als Parameter arnold/hello.cpp anzugeben, obwohl das inhaltlich das Gleiche ist. Unter diesem Namen ist es eben nicht gespeichert worden. Sämtliche Versuche, diese Version von tar dazu zu bewegen, mit Wildcards zu arbeiten scheitern. Das einzige Zugeständnis ist, dass man den Pfadnamen ./arnold verwenden kann und alle darunter liegenden Dateien und Verzeichnisse restauriert werden:

# tar xv ./arnold
x ./arnold/.cshrc, 814 bytes, 2 tape blocks
x ./arnold/.exrc, 347 bytes, 1 tape blocks
x ./arnold/.login, 341 bytes, 1 tape blocks
x ./arnold/.profile, 446 bytes, 1 tape blocks
x ./arnold/.sh_history, 2538 bytes, 5 tape blocks
x ./arnold/.rhosts, 7 bytes, 1 tape blocks
x ./arnold/bad.tif, 928109 bytes, 1813 tape blocks
x ./arnold/a.out, 20524 bytes, 41 tape blocks
x ./arnold/hello.cpp, 64 bytes, 1 tape blocks
x ./arnold/.history, 212 bytes, 1 tape blocks
#

Man ahnt es schon: Der nackte Parameter arnold ohne ./ scheitert. Das besonders Ärgerliche an solchen scheiternden Versuchen ist, dass man sie erst feststellt, wenn das ganze Band durchsucht wurde, was einige Zeit dauern kann.

Einige Versionen von tar können mehr. Das betrifft insbesondere die GNU-Version. Hier ein Beispiel:

gaston> tar xvf /dev/fd0 "*syslog.tex"
unprog/syslog.tex
gaston>

GNU tar hat keinerlei Probleme mit Wildcards. Wer oft mit tar arbeitet und häufiger einzelne Dateien zurückholen muss, sollte prüfen, ob es ein GNU tar für sein System gibt.

Fazit: Gerade das Zurückholen einzelner Dateien ist nicht trivial und von der Implementierung des tar abhängig. Hier sollte man sich vor dem Fall der Fälle aus den Manpages und dem Systemhandbuch informieren und am besten den Vorgang einmal ausprobieren.

Die Steuerungsdatei /etc/default/tar

Die tar-Implementation von SCO und SINIX verwendet eine Steuerungsdatei namens /etc/default/tar. Dort sind die verschiedenen Diskettenvarianten und einige Bandgeräte mit Kapazität und Device durchnummeriert aufgezählt. Die entsprechende Zahl wird dann im tar-Aufruf verwendet. Der Vorteil dieses Verfahrens ist, dass tar die Größe seiner Bänder kennt.

Nehmen wir als Beispiel an, es soll das Verzeichnis /usr/bin mit allen Unterverzeichnissen gesichert und wieder zurückgeladen werden. Zunächst wird mit dem Befehl cd / in das Rootverzeichnis gewechselt. Dann wird der jeweils passende Befehl aus Tabelle verwendet.

[Variationen im tar]L|L|L & Sichern & Laden
Linux & tar cf /dev/tape /usr/bin & tar xf /dev/tape
SCO & tar c8 /usr/bin & tar x8

Netzwerksicherung per tar

Nicht immer dokumentiert, aber meist implementiert ist, dass tar in der Lage ist, Dateien über das Netzwerk zu sichern. Dabei wird tar als Bandlaufwerk das Device einer anderen Maschine als Ziel der Datensicherung angegeben. Dabei wird der Hostname, gefolgt von einem Doppelpunkt und dem dortigen Device, als Ziel verwendet. Diese Namensgebung für Netzobjekte folgt der des Befehls rcp (remote copy; siehe S. rcp). Die Nomenklatur kommt nicht von ungefähr, da beide über eine Pipe über den rshd (siehe S. rshd) implementiert sind.

tar cf idefix:/dev/tape /usr/bin

Das lokale Verzeichnis /usr/bin wird auf das Bandlaufwerk der Maschine idefix gesichert. Da die Sicherung über den rshd erfolgt, muss natürlich auch die Berechtigungskonfiguration in der Datei .rhosts stimmen.



« dump | Datensicherung | cpio »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: 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.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de