![]() |
|
Linux - Wegweiser zur Installation & Konfiguration, 3. AuflageOnline-VersionBitte 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 zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.
|
Das Anlegen von Sicherungskopien (Backup) Ihres Systems ist sehr wichtig, um sich gegen Zerstörung oder Verlust von Daten abzusichern, falls Probleme mit der Hardware auftauchen oder Sie einmal versehentlich wichtige Dateien unwiderruflich löschen. Während Sie sich mit Ihrem Linux-System vertraut machen, werden Sie wahrscheinlich eine ganze Reihe von Anpassungen vornehmen, die sich nicht einfach durch eine Neuinstallation von Ihrem Installationsmedium rückgängig machen lassen. Wenn Sie allerdings die Linux-Originaldisketten oder -CD-ROMs zur Hand haben, brauchen Sie eventuell nicht das ganze System zu sichern. Das Originalmedium stellt bereits ein hervorragendes System-Backup dar.
Unter Linux, wie auch unter anderen Unix-Systemen, können Ihnen bei der Arbeit als root Fehler unterlaufen, die es unmöglich machen, das System zu starten oder sich einzuloggen. Viele Neulinge reagieren darauf, indem sie das System von einem Backup restaurieren oder es sogar komplett neu installieren. Das ist aber nur selten notwendig - wenn überhaupt. Im Abschnitt »Die Rettung in der Not« werden wir besprechen, was in solchen Fällen zu tun ist.
Wenn Sie Daten verloren haben, ist es manchmal möglich, mit Hilfe der Tools zur Pflege des Dateisystems, die wir im Abschnitt »Dateisysteme prüfen und reparieren« in Kapitel 6, Verwalten von Dateisystemen, Swap-Bereichen und Geräten, beschreiben, diese Daten zu restaurieren. Anders als in manchen anderen Betriebssystemen lassen sich im allgemeinen Dateien, die mit rm gelöscht oder durch ein achtloses cp oder mv überschrieben wurden, aber nicht mit einem »undelete« wiederherstellen. (So zerstört zum Beispiel das Kopieren einer Datei auf eine bereits existierende Datei die Zieldatei.) In solchen extremen Fällen sind Datensicherungen der Schlüssel zur Lösung Ihrer Probleme. |
Backups werden in der Regel auf Bänder oder Disketten geschrieben. Keines der Medien ist hundertprozentig zuverlässig, aber langfristig gesehen sind Bänder viel besser als Disketten. Es gibt viele Tools, die Sie bei der Erstellung von Backups unterstützen. Im einfachsten Fall benutzen Sie eine Kombination aus gzip und tar, um Daten von der Festplatte auf Diskette oder Band zu sichern. Für Datensicherungen, die nur gelegentlich erfolgen (zum Beispiel einmal im Monat), ist dies die beste Methode.
Wenn auf Ihrem System mehrere Benutzer arbeiten oder wenn Sie die Konfiguration des Systems häufig ändern, ist es vielleicht sinnvoller, die Datensicherung inkrementell vorzunehmen. Nach diesem Schema würden Sie etwa einmal im Monat eine »volle Datensicherung« vornehmen. Zusätzlich könnten Sie einmal pro Woche alle die Dateien sichern, die während der vorangegangenen Woche geändert wurden. Außerdem würden Sie jede Nacht die Dateien sichern, die in den letzten 24 Stunden geändert wurden. Es gibt verschiedene Tools, die Sie bei der Datensicherung nach einem solchen Schema unterstützen.
Die Idee hinter der inkrementellen Datensicherung ist, daß es viel effizienter ist, Backups in kleinen Schritten vorzunehmen - Sie brauchen weniger Disketten oder Bänder, und die wöchentlichen und täglichen Backups sind schneller und einfacher durchzuführen. Mit dieser Methode haben Sie immer eine Datensicherung, die höchstens einen Tag alt ist. Sollten Sie, sagen wir versehentlich, einmal Ihr ganzes System löschen, müßten Sie das System folgendermaßen wiederherstellen:
Je nach Größe Ihres Systems kann die volle monatliche Datensicherung durchaus 2 Gigabytes oder mehr an Speicherplatz beanspruchen - bei der Kapazität heutiger Speichermedien brauchen Sie oft nicht mehr als ein Magnetband, aber eine ganze Reihe von ZIP-Disketten. Die wöchentlichen und täglichen Backups werden allerdings erheblich weniger Platz beanspruchen. Vielleicht ist es sinnvoll, auf Ihrem System die wöchentliche Datensicherung auf Sonntagnacht zu verlegen und am Wochenende auf die Tagessicherungen zu verzichten.
Ein wichtiges Kriterium bei Backups ist, daß sie die Möglichkeit bieten sollten, einzelne Dateien wiederherzustellen. Wenn Sie also versehentlich eine Datei oder eine Gruppe von Dateien gelöscht haben, können Sie einfach die betroffenen Dateien zurückspielen, statt das ganze System wiederherzustellen. Je nachdem, wie Sie Ihre Backups vornehmen, kann das allerdings sehr einfach oder unendlich schwierig sein.
In diesem Abschnitt werden wir besprechen, wie Sie tar, gzip und einige verwandte Tools für die Datensicherung auf Diskette und Magnetband einsetzen können. Nebenbei gehen wir auf die Benutzung von Disketten- und Bandlaufwerken ein. Mit diesen Tools können Sie Ihre Backups mehr oder weniger »von Hand« erledigen - Sie können diesen Vorgang aber auch mit Hilfe von Shell-Skripten automatisieren oder Ihre Backups über Nacht von cron ausführen lassen. Sie müssen nur noch dafür sorgen, daß die Magnetbänder gewechselt werden. Es gibt Softwarepakete, die eine komfortable Menüoberfläche für das Sichern Ihrer Daten, das Zurückspielen bestimmter Dateien usw. bereitstellen. Viele dieser Programmpakete sind in Wirklichkeit schöne Bedienoberflächen, hinter denen tar und gzip versteckt werden. Sie müssen entscheiden, welche Art der Datensicherung für Sie geeignet erscheint.
Die einfachste Methode des Backups besteht darin, mit tar alle Dateien im System oder die Dateien in bestimmten Verzeichnissen zu archivieren. Bevor Sie damit anfangen, sollten Sie aber überlegen, welche Dateien gesichert werden müssen. Brauchen Sie wirklich ein Backup aller Dateien im System? Das ist nur äußerst selten der Fall, insbesondere, wenn Sie noch die Installationsdisketten oder -CD-ROMs zur Verfügung haben. Wenn Sie im System wichtige Änderungen vorgenommen haben, aber alles andere noch dem Zustand auf dem Installationsmedium entspricht, reicht es vielleicht aus, nur die geänderten Dateien zu sichern. Im Laufe der Zeit wird es allerdings schwieriger, solche Änderungen nachzuvollziehen.
Meistens werden Sie Änderungen in den Konfigurationsdateien in /etc vornehmen. Es gibt noch andere Konfigurationsdateien, und es kann nicht schaden, wenn Sie außerdem solche Verzeichnisse wie /usr/lib, /usr/X11R6/lib/X11 (hier stehen die Konfigurationsdateien für XFree86, wie wir im Abschnitt »XFree86 installieren« in Kapitel 10, Das X Window System installieren, noch sehen werden) usw. sichern. |
Sie sollten außerdem den Kernel-Quellcode sichern (falls Sie den Kernel geändert oder Ihren eigenen Kernel erzeugt haben); diese Dateien finden Sie in /usr/src/linux.
Während Ihrer Abenteuer mit Linux sollten Sie vielleicht notieren, welche Einstellungen des Systems Sie verändert haben, so daß Sie die entsprechenden Dateien sichern können. Wenn Sie wirklich vorsichtig sein wollen, können Sie natürlich auch das komplette System sichern - das wird Ihnen nicht wehtun, aber vielleicht Ihrem Geldbeutel.
Selbstverständlich sollten Sie auch die Home-Verzeichnisse aller Benutzer sichern; diese befinden sich in der Regel in /home. Falls Ihr System dafür konfiguriert ist, E-Mail zu empfangen (siehe auch den Abschnitt »Der »Mail Transport Agent« smail« in Kapitel 16, Das World Wide Web und E-Mail), sollten Sie eventuell auch die Dateien mit der eingegangenen E-Mail der Benutzer sichern. Viele Leute bewahren alte und »wichtige« E-Mail im Spool-Verzeichnis für eingehende E-Mail auf, und es kann schnell einmal passieren, daß eine dieser Dateien durch ein fehlerhaftes Mail-Programm oder einen anderen Fehler zerstört wird. Diese Dateien stehen in der Regel in /var/spool/mail. |
Sobald Sie wissen, welche Dateien oder Verzeichnisse gesichert werden sollen, können Sie loslegen. Im Abschnitt »Die Benutzung von tar« in Kapitel 7, Software und den Kernel aktualisieren, haben wir bereits gesehen, wie man tar einsetzt, um Daten zu sichern. Mit dem Befehl |
sichern Sie alle Dateien aus /usr/src, /etc und /home nach /dev/rft0. /dev/rft0 ist der erste »Floppy-Streamer«, das heißt das erste Bandlaufwerk, das an einem Floppy-Controller hängt. Viele weitverbreitete Streamer für den PC benutzen diese Schnittstelle. Wenn Sie einen SCSI-Streamer benutzen, lauten die Gerätenamen /dev/st0, /dev/st1 usw., abhängig von der Nummer des Laufwerks. Streamer-Laufwerke, die andere Schnittstellen benutzen, haben eigene Gerätenamen. Sie erfahren diese Namen, indem Sie im Kernel die Dokumentation zu dem entsprechenden Gerätetreiber anschauen.
können Sie das Archiv dann vom Band zurücklesen. Die Vorgehensweise entspricht genau der bei der Arbeit mit einer tar-Datei auf der Festplatte, wie wir das im Abschnitt »« in Kapitel 7 besprochen haben.
Wenn Sie einen Streamer benutzen, wird das Magnetband als Datenstrom (stream) betrachtet, der nur in einer Richtung gelesen oder geschrieben werden kann. Sobald tar beendet ist, wird die Verbindung zum Streamer unterbrochen, und das Magnetband wird zurückgespult. Auf Magnetbändern werden keine Dateisysteme angelegt, Sie können einen Streamer nicht aufsetzen, und Sie können auf die Daten nicht in Form einzelner Dateien zugreifen. Statt dessen wird der Streamer selbst wie eine einzige »Datei« behandelt, wenn Archive erstellt oder entpackt werden.
Stellen Sie sicher, daß Sie nur mit formatierten Magnetbändern arbeiten. Dabei werden die BOT-Markierung (Beginning-Of-Tape) und Informationen über fehlerhafte Blöcke auf das Band geschrieben. Zum Zeitpunkt des Schreibens gibt es unter Linux kein Tool zum Formatieren von QIC-80-Bändern (die mit Floppy-Streamern benutzt werden). Sie müssen Ihre Bänder also unter DOS formatieren oder vorformatierte Bänder benutzen.
Es würde eine Menge Bandkapazität verschwenden, immer nur eine tar-Datei pro Band zu speichern, wenn die Datei nur einen Bruchteil der Kapazität belegt. Damit mehr als eine Datei auf ein Band geschrieben werden kann, müssen Sie zunächst dafür sorgen, daß das Band nicht nach jeder Benutzung zurückgespult wird. Außerdem brauchen Sie eine Methode, das Band auf die nächste »Dateimarkierung« (file marker) zu positionieren - dies gilt sowohl beim Erstellen als auch für das Entpacken von tar-Dateien.
Sie erreichen das, indem Sie die Gerätetreiber ohne automatisches Zurückspulen benutzen. Für Floppy-Streamer sind das /dev/nrft0, /dev/nrft1 usw., für SCSI-Streamer /dev/nrst0, /dev/nrst1 usw. Wenn Sie beim Lesen und Schreiben diese Treiber benutzen, wird das Magnetband nach der Beendigung von tar nicht zurückgespult. Sie können anschließend mit tar das nächste Archiv auf das Band schreiben. Die beiden Dateien auf dem Band haben absolut nichts miteinander zu tun. Wenn Sie später einmal die erste Datei überschreiben, kann es natürlich passieren, daß Sie auch die zweite Datei zerstören oder daß zwischen den beiden Dateien eine unerwünschte Lücke bleibt (diese Lücke könnte als Datenmüll interpretiert werden). Im allgemeinen sollten Sie nie versuchen, eine einzelne Datei auf einem Band zu ersetzen, das mehrere Dateien enthält.
Wenn Sie die Treiber ohne automatisches Zurückspulen benutzen, können Sie so lange Dateien auf das Band schreiben, wie noch Platz ist. Zum Zurückspulen benutzen Sie den Befehl mt. Das ist ein Befehl, der für Streamer eine ganze Reihe von Funktionen ausführt.
spult das Magnetband im ersten Floppy-Streamer zurück. (In diesem Fall hätten Sie auch den entsprechenden Treiber mit Zurückspulen benutzen können; dabei geschieht das Zurückspulen allerdings nur als ein Nebeneffekt nach dem Unterbrechen der Verbindung zum Streamer.)
läßt sich das Band wieder straffen, indem es bis zum Ende durchläuft und dann zurückgespult wird.
Wenn Sie eine Datei von einem Band mit mehreren Dateien lesen wollen, müssen Sie mit tar die Treiber ohne Zurückspulen benutzen und dann mit mt das Band auf die entsprechende Datei positionieren.
Mit folgendem Befehl spulen Sie das Band zur nächsten Datei vor:
Damit überspringen Sie eine Datei auf dem Band. Wenn Sie zwei Dateien überspringen möchten, geben Sie ein:
Sie müssen mt immer dann benutzen, wenn Sie von einem Band mit mehreren Dateien lesen wollen. Zweimal tar direkt hintereinander, um zwei aufeinanderfolgende Dateien zu lesen, wird in der Regel nicht funktionieren. Das liegt daran, daß tar die »Dateimarkierung« zwischen den Dateien nicht erkennt. Nach der Beendigung des ersten tar steht das Band auf dem Anfang der Dateimarkierung; wenn Sie dann sofort das zweite tar ausführen, erhalten Sie eine Fehlermeldung, weil tar versucht, die Dateimarkierung zu lesen. Positionieren Sie nach dem Lesen der ersten Datei einfach das Band mit
Genau so, wie wir es im letzten Abschnitt bereits gezeigt haben, erstellen Sie mit dem Befehl
ein Backup von /usr/src, /etc und /home auf /dev/fd0, dem ersten Diskettenlaufwerk. Mit
können Sie das Backup zurücklesen.
Da Disketten über eine ziemlich begrenzte Speicherkapazität verfügen, bietet das GNU-tar die Möglichkeit, ein Archiv zu erstellen, das sich über mehrere Disketten erstreckt (»multi-volume« archive). (Diese Möglichkeit kann auch für Magnetbänder genutzt werden, ist aber für Disketten viel nützlicher.) Wenn Sie diese Möglichkeit nutzen, wird tar Sie auffordern, die nächste Diskette einzulegen, sobald die vorherige zu Ende gelesen oder geschrieben wurde. Geben Sie dazu die Option M
von tar ein, etwa so:
Sorgen Sie für eine deutliche Kennzeichnung der Disketten, und bringen Sie sie beim Entpacken des Archivs nicht durcheinander.
Ein Nachteil dieser Arbeitsweise ist, daß die automatische Komprimierung mit der Option z von gzip nicht funktioniert (siehe auch den vorherigen Abschnitt). Allerdings gibt es mehrere Gründe, mit tar erstellte Backups nicht zu komprimieren - wir besprechen das weiter unten. Auf jeden Fall können Sie Backups über mehrere Disketten erstellen, indem Sie tar und gzip zusammen mit einem Programm einsetzen, das Daten auf eine Reihe von zusammengehörigen Disketten (oder Bändern) schreiben oder von dort lesen kann. Dabei werden die einzelnen Disketten/Bänder der Reihe nach angefordert. Eines dieser Programme ist backflops, das Sie in einigen Linux-Distributionen und in FTP-Archiven finden. Eine Do-it-yourself-Methode, ein Archiv auf mehrere Disketten zu verteilen, ist das Erstellen des Archivs als Datei auf der Festplatte; anschließend können Sie mit dd oder einem ähnlichen Befehl Teile dieser Datei auf die einzelnen Disketten schreiben. Wenn Sie mutig genug sind, diesen Weg zu wählen, werden Sie auch selbst herausfinden, wie Sie vorgehen müssen.
Es gibt gute Argumente sowohl für als auch gegen die Komprimierung von tar-Archiven bei der Erstellung von Backups. Das eigentliche Problem liegt darin, daß weder tar noch gzip besonders fehlertolerant arbeiten - trotz aller Vorteile. Zwar läßt sich die Zahl der Backup-Medien, die für die Speicherung eines Archivs benötigt werden, durch die Komprimierung mittels gzip wesentlich verringern; andererseits besteht die Gefahr, daß beim Schreiben von komprimierten tar-Dateien auf Disketten oder Bänder die Daten völlig unbrauchbar werden, wenn auch nur ein Datenblock des Archivs zerstört ist - etwa durch einen Fehler im Speichermedium (nicht unüblich bei Disketten und Magnetbändern). Der Erfolg der meisten Komprimierungsalgorithmen (einschließlich gzip) ist davon abhängig, daß die Daten über viele Bytes hinweg kohärent sind. Wenn innerhalb eines komprimierten Archivs zerstörte Daten auftauchen, ist gunzip eventuell überhaupt nicht mehr in der Lage, die Datei zu entpacken, wodurch sie für tar nicht mehr zu verarbeiten wäre.
Dieser Fall ist viel schlimmer als bei einer unkomprimierten tar-Datei auf dem Band. Zwar bietet tar keinen großen Schutz gegen die Zerstörung von Daten innerhalb eines Archivs; trotzdem ist es aber in der Regel möglich, bei nur kleinen Fehlern in einem Archiv den größten Teil der Daten ohne großen Aufwand zu retten - auf jeden Fall die Dateien bis zu der Stelle, an der ein Fehler auftritt. Natürlich ist das nicht die optimale Lösung, aber immer noch besser als ein Verlust des kompletten Backups.
Eine bessere Lösung wäre es, ein anderes Archivierungsprogramm als tar für die Erstellung von Backups zu benutzen. Verschiedene Möglichkeiten bieten sich an. cpio ist ein Archivierer, der die Dateien ähnlich wie tar behandelt. Da cpio aber eine einfachere Methode der Datenspeicherung benutzt, kann es zerstörte Daten in einem Archiv sicher wiederherstellen. (Allerdings kann auch cpio keine Fehler in gzip-ten Dateien sauber restaurieren.)
Die beste Lösung ist wahrscheinlich die Benutzung eines Tools wie afio. afio unterstützt Bakkups über mehrere Disketten/Bänder und arbeitet in gewissen Punkten ähnlich wie cpio. Allerdings komprimiert afio zusätzlich und ist zuverlässiger, weil jede Datei einzeln gepackt wird. Das bedeutet, daß bei der Zerstörung von Daten in einem Archiv nur einzelne Dateien betroffen sind, nicht aber das komplette Backup.
Diese Tools sollten entweder in Ihrer Distribution enthalten oder in einem der Linux-Archive im Internet zu finden sein. Es gibt weitere Archivierungsprogramme für Linux, die alle mehr oder weniger beliebt und brauchbar sind. Wenn Sie sich ernsthaft mit Backups beschäftigen wollen, sollten Sie sich diese Tools ansehen. Fußnoten 1 Zu den frei verfügbaren Programmen gehören taper und tob, zu den kommerziellen ARKEIA und Perfect Backup.
Inkrementelle Backups, wie wir sie weiter oben beschrieben haben, sind eine gute Methode, Ihre Datensicherungen auf dem aktuellen Stand zu halten. Sie könnten zum Beispiel jede Nacht die Dateien sichern, die in den letzten 24 Stunden verändert wurden, einmal in der Woche alle Dateien, die im Laufe der Woche geändert wurden, und einmal im Monat das gesamte System.
Inkrementelle Backups lassen sich mit den bereits erwähnten Tools erstellen: tar, gzip, cpio usw. Der erste Schritt zu einem inkrementellen Backup ist es, eine Liste der Dateien anzufertigen, die seit einem bestimmten Zeitpunkt geändert wurden. Mit dem Befehl find läßt sich das leicht bewerkstelligen. Fußnoten 2 Wenn Sie ein spezielles Backup-Programm verwenden, dann müssen Sie das sicherlich nicht machen, sondern irgendwo eine Option anwählen, daß Sie ein inkrementelles Backup durchführen wollen.
Eine Liste aller Dateien, die in den letzten 24 Stunden geändert wurden, erhalten Sie zum Beispiel mit:
Das erste Argument für find ist das Verzeichnis, in dem es beginnen soll - in diesem Fall /, das Root-Verzeichnis. Die Option -mtime 1 weist find an, alle Dateien zu finden, die in den letzten 24 Stunden geändert wurden.
Die Option \! -type d ist kompliziert (und optional), vermeidet aber einigen unnötigen Kram in der Ausgabe. Sie veranlaßt find, Verzeichnisse aus dieser Liste auszuschließen. Das ! ist der Negationsoperator (und bedeutet hier »Schließe die Dateien des Typs d aus«), aber wir müssen einen Backslash davorschreiben, weil sonst die Shell das ! als besonderes Zeichen interpretieren würde.
Die Option -print schreibt die gefundenen Dateinamen auf die Standardausgabe. Wir haben die Standardausgabe in eine Datei umgelenkt, damit wir später darauf zurückgreifen können. Mit einem ähnlichen Befehl, nämlich
finden Sie alle Dateien, die während der letzten Woche geändert wurden.
Jetzt haben Sie also eine Liste der zu sichernden Dateien vorliegen. Solange wir mit tar gearbeitet haben, wurden die zu archivierenden Dateien in der Befehlszeile übergeben. Diese Liste könnte aber für eine einzige Befehlszeile (in der Regel auf ca. 2048 Zeichen beschränkt) viel zu lang werden- außerdem haben wir die Liste in einer Datei vorliegen.
Mit der Option -T können wir tar anweisen, die Liste der zu sichernden Dateien aus einer Datei zu lesen. Um mit dieser Option arbeiten zu können, müssen wir allerdings eine andere tar-Syntax benutzen, in der alle Optionen mit einem eigenen Bindestrich angegeben werden. Ein Beispiel: Wenn Sie die Dateien, die in /tmp/ filelist.daily aufgelistet sind, auf /dev/rft0 sichern wollen, geben Sie ein:
Sie sind jetzt in der Lage, ein kurzes Shell-Skript zu schreiben, das selbständig die Liste der zu sichernden Dateien erzeugt und das Backup unter Benutzung von tar erstellt. Mittels cron können Sie dafür sorgen, daß dieses Skript jede Nacht zu einer bestimmten Zeit ausgeführt wird; Sie müssen nur noch sicherstellen, daß ein Magnetband im Laufwerk steckt. Mit ähnlichen Skripten können Sie auch die wöchentlichen und monatlichen Backups durchführen lassen. Wir besprechen cron im nächsten Abschnitt.
Fußnoten 1![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2000, O'Reilly Verlag