Die drei wichtigsten Programme zur Sicherung von Daten sind dump(8), tar(1) und cpio(1).
dump
und restore
sind die
traditionellen Backup-Programme in UNIX® Systemen. Sie betrachten das
Laufwerk als eine Ansammlung von Blöcken, operieren also unterhalb
des Abstraktionslevels von Dateien, Links und Verzeichnissen, die die
Grundlage des Dateisystemkonzepts bilden. Im Gegensatz zu anderen
Backup-Programmen sichert dump
ein ganzes Dateisystem
auf einem Gerät. Es ist nicht möglich nur einen Teil des
Dateisystems, oder einen Verzeichnisbaum, der mehr als ein Dateisystem
umfasst, zu sichern. Das dump
-Kommando schreibt
keine Dateien oder Verzeichnisse auf das Band, sondern die Blöcke,
aus denen Dateien und Verzeichnisse bestehen. Wenn
restore
für das Extrahieren von Daten verwendet
wird, werden temporäre Dateien standardmäßig in
/tmp/
abgelegt - wenn Sie von einer Platte mit
einem kleinen /tmp
-Verzeichnis zurücksichern,
müssen Sie möglicherweise die Umgebungsvariable
TMPDIR
auf ein Verzeichnis mit mehr freiem Speicherplatz
setzen, damit die Wiederherstellung gelingt.
Wenn Sie mit dump
das Root-Verzeichnis
sichern, werden /home
, /usr
und viele andere Verzeichnisse nicht gesichert, da dies normalerweise
Mountpunkte für andere Dateisysteme oder symbolische Links
zu diesen Dateisystemen sind.
dump
hat einige Eigenarten, die noch aus den
frühen Tagen der Version 6 von AT&T UNIX (ca. 1975)
stammen. Die Parameter
sind für 9-Spur-Bänder (6250 bpi) voreingestellt,
nicht auf die heute üblichen Medien hoher Dichte (bis zu
62.182 ftpi). Bei der Verwendung der Kapazitäten
moderner Bandlaufwerke muss diese Voreinstellung auf der
Kommandozeile überschrieben werden.
rdump
und rrestore
können Daten über
Netzwerk auf ein Band, das sich in einem Laufwerk eines anderen
Computers befindet, überspielen. Beide Programme benutzen die
Funktionen rcmd(3) und ruserok(3) zum
Zugriff auf das entfernte
Bandlaufwerk. Daher muss der Anwender, der das Backup
durchführt, auf dem entfernten Rechner in
.rhosts
eingetragen sein.
Die Argumente zu rdump
und
rrestore
müssen
zur Verwendung auf dem entfernten Computer geeignet sein.
Wenn Sie zum Beispiel mit rdump
von einem
FreeBSD-Rechner aus auf ein Exabyte-Bandlaufwerk einer Sun mit
Namen komodo
zugreifen möchten, setzen Sie
das folgende Kommando ab:
#
/sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1
Zum Ausführen dieses Kommandos müssen Sie auf dem
entfernten Rechner in .rhosts
eingetragen
sein. Die r-Kommandos sind ein großes Sicherheitsrisiko,
daher sollten Sie deren Verwendung sorgfältig
abwägen.
Es ist auch möglich, dump
und
restore
über eine gesicherte Verbindung
mit ssh
einzusetzen:
dump
mit ssh
benutzen#
/sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz
Sie können ebenfalls mit der internen Methode
von dump
auf entfernte Rechner zugreifen,
indem Sie die Umgebungsvariable RSH
setzen:
dump
über ssh
mit gesetzter RSH
benutzen#
RSH=/usr/bin/ssh /sbin/dump -0uan -f tatargetuser@targetmachine.example.com:/dev/sa0 /usr
tar(1) stammt ebenfalls aus Version 6 von AT&T UNIX
(ca. 1975). tar
arbeitet mit dem Dateisystem,
denn es schreibt Dateien und Verzeichnisse auf das Band.
tar
unterstützt zwar nicht alle Optionen,
die bei cpio(1) zur Verfügung stehen, aber dafür
erfordert es auch nicht die ungewöhnliche Kommando-Pipeline,
die von cpio
verwendet wird.
Um Daten mit tar
auf ein an einer
Sun-Workstation (namens komodo
) angeschlossenes
Exabyte-Bandlaufwerk zu archivieren, geben Sie Folgendes ein:
#
tar cf - . | rsh komodo dd of=tape-device
obs=20b
Wenn Sie Bedenken bezüglich der Sicherheit beim Backup
über das Netz haben, sollten Sie ssh
anstatt
rsh
benutzen.
cpio(1) ist das ursprüngliche Programm von
UNIX® Systemen zum Dateitransfer mit magnetischen Medien.
cpio
hat (neben vielen anderen
Leistungsmerkmalen) Optionen zum Byte-Swapping, zum Schreiben
einer Anzahl verschiedener Archivformate und zum Weiterleiten von
Daten an andere Programme über eine Pipeline. Dieses letzte
Leistungsmerkmal macht cpio
zu einer
ausgezeichneten Wahl für Installationsmedien. Leider kann
cpio
keine
Dateibäume durchlaufen, so dass eine Liste der zu bearbeitenden
Dateien über stdin
angegeben werden
muss.
cpio
unterstützt keine Backups
über das Netzwerk. Man kann aber eine Pipeline und
rsh
verwenden, um
Daten an ein entferntes Bandlaufwerk zu senden.
#
for f in directory_list; do
find $f >> backup.list
done
#
cpio -v -o --format=newc < backup.list | ssh user
@host
"cat > backup_device
"
Dabei steht directory_list
für
eine Aufzählung der Verzeichnisse, die Sie sichern wollen.
user
@host
gibt den Benutzer auf dem Zielrechner an, der die Sicherung
laufen lässt. Der Ort der Sicherung wird durch
backup_device
angegeben
(z.B. /dev/nsa0
).
pax(1) ist die Antwort von IEEE/POSIX® auf
tar
und cpio
.
Über die Jahre hinweg sind die verschiedenen
Versionen von tar
und cpio
leicht
inkompatibel geworden. Daher hat POSIX®, statt eine Standardisierung
zwischen diesen auszufechten, ein neues Archivprogramm geschaffen.
pax
versucht viele der unterschiedlichen
cpio
- und tar
-Formate zu lesen
und zu schreiben, außerdem einige neue, eigene Formate. Die
Kommandostruktur ähnelt eher cpio
als
tar
.
Amanda (Advanced Maryland Network Disk Archiver) ist ein Client/Server-Backupsystem, nicht nur ein einzelnes Programm. Ein Amanda-Server kann auf einem einzigen Bandlaufwerk Datensicherungen von jeder beliebigen Anzahl von Computern speichern, sofern auf diesen jeweils ein Amanda-Client läuft und sie über Netzwerk mit dem Amanda-Server verbunden sind.
Ein häufiges Problem bei Standorten mit einer Anzahl großer Festplatten ist, dass das Kopieren der Daten auf Band langsamer vor sich geht als solche Daten anfallen. Amanda löst dieses Problem durch Verwendung einer „Holding Disk“, einer Festplatte zum gleichzeitigen Zwischenspeichern mehrerer Dateisysteme.
Für Datensicherungen über einen längeren Zeitraum erzeugt Amanda „Archivsets“ von allen Dateisystemen, die in Amandas Konfigurationsdatei genannt werden. Ein Archivset ist eine Gruppe von Bändern mit vollen Backups und Reihen von inkrementellen (oder differentiellen) Backups, die jeweils nur die Unterschiede zum vorigen Backup enthalten. Zur Wiederherstellung von beschädigten Dateisystemen benötigt man Das Letzte volle Backup und alle darauf folgenden inkrementellen Backups.
Die Konfigurationsdatei ermöglicht die Feineinstellung der Backups und des Netzwerkverkehrs von Amanda. Amanda kann zum Schreiben der Daten auf das Band jedes der oben beschriebenen Backuprogramme verwenden. Amanda ist nicht Teil des Basissystems, Sie müssen Amanda über die Ports-Sammlung oder als Paket installieren.
„Tue nichts“ ist kein Computerprogramm, sondern die am häufigsten angewendete Backupstrategie. Diese kostet nichts, man muss keinen Backup Plan befolgen, einfach nur nein sagen. Wenn etwas passiert, einfach grinsen und ertragen!
Wenn Ihre Zeit und Ihre Daten nicht so wichtig sind, dann ist die Strategie „Tue nichts“ das geeignetste Backup-Programm für Ihren Computer. Aber UNIX® ist ein nützliches Werkzeug, Sie müssen damit rechnen, dass Sie innerhalb von sechs Monaten eine Sammlung von Dateien haben, die für Sie wertvoll geworden sind.
„Tue nichts“ ist die richtige Backupmethode für
/usr/obj
und andere Verzeichnisbäume, die
vom Computer exakt wiedererzeugt werden können. Ein Beispiel
sind die Dateien, die diese Handbuchseiten darstellen – sie
wurden aus Quelldateien im Format SGML erzeugt.
Es ist nicht nötig, Sicherheitskopien der Dateien in den
sekundären Formaten wie etwa HTML zu
erstellen. Die Quelldateien in SGML sollten jedoch
in die regelmäßigen Backups mit einbezogen werden.
dump
, Punkt und Schluss.
Elizabeth D. Zwicky hat alle hier genannten Backup-Programme
bis zur Erschöpfung ausgetestet. Ihre eindeutige Wahl zur
Sicherung aller Daten mit Berücksichtigung aller Besonderheiten
von UNIX® Dateisystemen ist dump
.
Elizabeth erzeugte Dateisysteme mit einer großen Vielfalt ungewöhnlicher Bedingungen (und einiger gar nicht so ungewöhnlicher) und testete jedes Programm durch ein Backup und eine Wiederherstellung dieser Dateisysteme. Unter den Besonderheiten waren Dateien mit Löchern, Dateien mit Löchern und einem Block mit Null-Zeichen, Dateien mit ausgefallenen Buchstaben im Dateinamen, unlesbare und nichtschreibbare Dateien, Gerätedateien, Dateien, deren Länge sich während des Backups ändert, Dateien, die während des Backups erzeugt und gelöscht werden, u.v.m. Sie berichtete über ihre Ergebnisse in LISA V im Oktober 1991, s. Torture-testing Backup and Archive Programs.
Es sind nur vier Vorkehrungen zu treffen, um auf jedes erdenkliche Unglück vorbereitet zu sein.
Als erstes drucken Sie das bsdlabel jeder Ihrer Festplatten
(z.B. mittels bsdlabel da0 | lpr
), die
Partitions- und Dateisystemtabelle jeder Festplatte (mit
/etc/fstab
) sowie alle Bootmeldungen, jeweils
in zweifacher Ausfertigung.
Zweitens brennen Sie eine „livefs“-CD. Diese CD-ROM enthält alle nötigen Programme, um in einen Reperaturmodus zu starten, aus dem heraus Sie unter anderem dump(8), restore(8), fdisk(8), bsdlabel(8), newfs(8) sowie mount(8) starten können. ISO-Abbilder für das „livefs“-System finden Sie unter ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/9.1/FreeBSD-9.1-RELEASE-i386-livefs.iso.
Drittens, machen Sie oft Backups auf Band. Jede Änderung seit Ihrem letzten Backup kann unwiederbringlich verloren gehen. Versehen Sie die Backup-Bänder mit Schreibschutz.
Viertens, testen Sie das in Schritt 2 erstellte
„livefs“-System sowie die für das Backup
notwendigen Bänder. Dokumentieren Sie diesen Test und
bewahren Sie diese Notizen zusammen mit der
„livefs“-CD und den Bändern auf. Wenn der
Ernstfall eintritt, werden Sie vielleicht so genervt
sein, dass Sie ohne Ihre Notizen vielleicht das Backup auf Ihren
Bändern zerstören. (Wie das geht? Man braucht nur
unglücklicherweise den Befehl tar cvf
/dev/sa0
einzugeben um ein Band zu
überschreiben).
Als zusätzliche Sicherheitsvorkehrung, kann man jeweils die „livefs“-CD und Bänder doppelt erstellen. Eine der Kopien sollte an einem entfernten Standort aufbewahrt werden. Ein entfernter Standort ist NICHT der Keller im gleichen Bürogebäude. Eine Anzahl von Firmen im World Trade Center musste diese Lektion auf die harte Tour lernen. Ein entfernter Standort sollte von Ihrem Computer und Ihren Festplatten physikalisch durch eine erhebliche Entfernung getrennt sein.
Die Schlüsselfrage ist, ob Ihre Hardware überlebt hat. Denn da Sie ja regelmäßig Backups angefertigt haben, brauchen Sie sich um die Software keine Sorgen zu machen.
Falls die Hardware beschädigt wurde, ersetzen Sie zuerst die defekten Teile bevor Sie den Computer benutzen.
Falls die Hardware funktioniert, legen Sie die
„livefs“-CD in das Laufwerk ein und starten den
Rechner, wodurch das originale Installationsprogramm von FreeBSD
gestartet wird. Legen Sie zuerst Ihr Land fest. Danach
öffnen Sie das Menü
Fixit -- Repair mode with CDROM/DVD/floppy or start
a shell.
und wählen den Eintrag
aus. restore
und die anderen Programme, die Sie benötigen, befinden
sich dann im Verzeichnis /mnt2/rescue
.
Stellen Sie die Dateisysteme nacheinander wieder her.
Versuchen Sie die Root-Partition Ihrer ersten Festplatte
einzuhängen (z.B. mit mount /dev/sd0a
/mnt
). Wenn das Bsdlabel beschädigt wurde,
benutzen Sie bsdlabel
um die Platte
neu zu partitionieren und zu benennen und zwar so, dass die
Festplatte mit dem Label übereinstimmt, das Sie
ausgedruckt und aufbewahrt haben.
Verwenden Sie newfs
um neue Dateisysteme
auf den
Partitionen anzulegen. Hängen Sie nun die Root-Partition der
Festplatte mit Schreibzugriff ein (mit mount -u -o rw
/mnt
). Benutzen Sie Ihr Backup-Programm um die Daten
für das jeweilige Dateisystem aus den Backup-Bändern
wieder her zu stellen (z.B. durch restore vrf
/dev/sta
). Hängen Sie das Dateisystem wieder aus
(z.B. durch umount /mnt
). Wiederholen Sie diesen
Ablauf für jedes betroffene Dateisystem.
Sobald Ihr System wieder läuft, machen Sie gleich wieder ein vollständiges Backup auf neue Bänder. Denn die Ursache für den Absturz oder den Datenverlust kann wieder zuschlagen. Eine weitere Stunde, die Sie jetzt noch dranhängen, kann Ihnen später ein weiteres Missgeschick ersparen.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.