Willemers Informatik-Ecke
Die Datensicherung ist die wichtigste Aufgabe des Administratoren. Die Verantwortung dafür kann ihm keiner abnehmen. Wenn die Datensicherung über einen längeren Zeitraum nicht klappt, ist das Unternehmen beim nächsten Plattencrash so gut wie konkurs.
Das Bandlaufwerk
Devices für Bandlaufwerke
Leider sind die Einträge für das Bandlaufwerk im Verzeichnis /dev
nicht auf allen Systemen gleich und so ist es nicht ganz leicht, das
Bandlaufwerk zu erkennen. Spätestens hier
ist der Zeitpunkt, wo man nicht umhinkommt, in das Systemhandbuch zu schauen.
Für jeden Bandtyp ist normalerweise ein eigenes Device eingerichtet.
Hinzu kommt, dass für das nicht rückspulende Laufwerk ein weiterer Eintrag,
üblicherweise mit einem n davor oder hinter den Namen gemacht wird.
Hier zwei Beispiele für Namen von SCSI-Bandlaufwerken.
| Band rückspulend | Band ohne Spulen | System |
| /dev/rmt/1 | /dev/rmt/1n | Sun Solaris |
| /dev/rmt/0mb | /dev/rmt/0mnb | HP-UX |
Auch Bänder brauchen Performance
Bei einem Bandlaufwerk ist der Gesichtspunkt der Performance durchaus relevant.
Die Datensicherung ist meist nicht in wenigen Minuten getan und setzt
die Maschine während dieser Zeit weitgehend außer Gefecht. Darum sollten
sowohl Laufwerk, Controller und Computer höchste Leistung bringen.
Steuerung eines Bandlaufwerkes: mt
Zur Ansteuerung des Bandlaufwerks wird das
Programm mt verwendet. Als Bandlaufwerk verwendet mt den Inhalt
der Umgebungsvariablen TAPE oder das Device /dev/tape, das üblicherweise
ein symbolischer Link auf das Standardlaufwerk ist. Man kann das Laufwerk
auch mit der Option -f direkt angeben.
mt -f /dev/Bandlaufwerk Befehl
|
Befehle für mt
Der Befehl mt status liefert gute Hinweise, ob das Laufwerk
überhaupt ansprechbar ist.
Der mt-Befehl retension spult das Band einmal nach vorn und
wieder zurück. Soll nur zurückgespult werden, gibt es den Befehl
rewind.
| mt-Kommando | Wirkung |
| status | testet, ob das Bandlaufwerk ansprechbar ist |
| rewind | spult das Band zurück |
| retension | spult das Band komplett nach vorn und wieder zurück |
| erase | löscht das einliegende Band |
Unter MacOS X ist mt nicht verfügbar.
dump
dump ist ein recht altes Werkzeug in der UNIX Umgebung. Es ist
speziell auf Datensicherung ausgelegt. Vor allem ist es in der Lage,
komplette Dateisysteme zu sichern und inkrementelle Datensicherungsstrategien
zu unterstützen.
Unter Solaris heißt der Befehl dump ufsdump. Der dort
existierende Befehl dump hat eine andere Aufgabe.
Nach dem Befehl dump wird mit einer Ziffer der Level der Sicherung
bestimmt. Es folgen weitere Optionen.
Wird die Option u verwendet, wird in der Datei dumpdates im
Verzeichnis /var/adm oder /etc hinterlegt, wann welches
Dateisystem gesichert worden ist.
Die Option f erwartet einen weiteren Parameter, der den Ort des
Bandes beschreibt. Hier kann ein anderes als das Standardband angegeben werden.
Es kann durch die Notation host:/dev/tape auch eine Sicherung
über das Netz durchgeführt werden.
Der letzte Parameter gibt die zu sichernde Partition an. In einigen Versionen
von dump funktioniert alternativ die Angabe des mount points.
Mit dem folgenden Sicherungslauf wird die Partition /dev/vg00/lvol3
auf das Standardband gesichert.
hpsrv# dump 0 /dev/vg00/lvol3
/var/adm/dumpdates: No such file or directory
DUMP: Date of this level 0 dump: Sun Dec 30 15:27:44 2001
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/vg00/rlvol3 (/home) to /dev/rmt/0m
DUMP: This is an HP long file name filesystem
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 1001 tape blocks on 0.03 tape(s).
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: DUMP: 1001 tape blocks on 1 tape(s)
DUMP: DUMP: /dev/vg00/rlvol3 has 0 inodes with unsaved ...
DUMP: DUMP IS DONE
DUMP: Tape rewinding
hpsrv#
|
Sollen mehrere Dateisysteme auf ein Band geschrieben werden, muss das Device
des Bandgerätes so gewählt werden, dass es das Rückspulen nicht durchführt.
Daten zurück: restore
Der Befehl restore holt gesicherte Datenbestände zurück.
Komplette Rücksicherung
Die Option -r sorgt für das komplette Einspielen der gesicherten Daten.
Zuvor wird das Dateisystem, auf das die Daten sollen, neu mit mkfs
erzeugt und per mount eingehängt.
Mit cd wechselt man in das Wurzelverzeichnis des Dateisystems und
ruft restore mit der Option -r auf.
Bei einer inkrementellen Datensicherung sind auch die neuesten Bänder der
jeweiligen Levels einzuspielen.
Interaktives Zurückholen
Mit der Option -i können interaktiv einzelne Dateien zurückgeholt
werden. restore holt den Katalog vom Band und setzt den Benutzer auf
einen eigenen Prompt, in dem er die Standardbefehle ls, pwd
und cd verwenden kann, als
sei er auf einem Dateisystem. Mit dem Befehl add Datei wird die
genannte Datei in die Liste derer aufgenommen, die wieder zurückgeholt werden soll.
Mit dem Befehl extract startet das Zurückholen der Daten.
Im Beispiel wird die Datei hello.cpp aus dem Heimatverzeichnis
zurückgeholt. Zunächst wechselt man in das Verzeichnis, wo die gesicherten
Dateien später hingelegt werden sollen. In diesem Fall wurde ein Verzeichnis
restore unter /var angelegt.
hpsrv# cd /var
hpsrv# mkdir restore
hpsrv# cd restore
hpsrv# restore i
restore > cd arnold
restore > ls
./arnold:
.cshrc .history .profile .sh_history bad.tif
.exrc .login .rhosts a.out hello.cpp
restore > add hello.cpp
restore > ls
./arnold:
.cshrc .history .profile .sh_history bad.tif
.exrc .login .rhosts a.out *hello.cpp
restore > extract
You have not read any tapes yet.
Unless you know which volume your file(s) are on you should
start with the last volume and work towards the first.
Specify next volume #:
Specify next volume #: 1
set owner/mode for '.'? [yn] n
restore > quit
hpsrv# ls
arnold
hpsrv# pwd
/var/restore
hpsrv# ll arnold
total 2
-rw-rw-rw- 1 arnold users 45 Dec 20 21:43 hello.cpp
hpsrv#
|
Wie zu sehen, werden die Dateien in einem Abbild der gesicherten Strukturen
auf dem aktuellen Pfad abgelegt. Die Datei hello.cpp muss also noch
in das Originalverzeichnis umkopiert werden.
Beispiel für eine Fernsicherung mit dump
Mit dump kann man den eigenen Datenbestand auch über Netz auf
dem Bandgerät einer anderen Maschine sichern.
Der rsh-Dämon (siehe S. \gpSeitenverweis{rshd}) muss auf der Zielmaschine
verfügbar und korrekt installiert sein.
Bei einer Fernsicherung wird das Programm rmt auf dem entfernten
Rechner benötigt, das von dump in /etc/dump gesucht wird.
Auf der
HP-UX-Maschine, die in diesem Fall als Zielmaschine dienen soll, befindet
sich rmt aber im Verzeichnis /usr/sbin. Durch die
Environmentvariable RMT
kann der Pfad allerdings auf der Quellmaschine korrigiert werden.
gaston# RMT=/usr/sbin/rmt
gaston# export RMT
gaston# dump -0 -f hpsrv:/dev/rmt/0mb /dev/hda7
DUMP: Connection to hpsrv established.
DUMP: Date of this level 0 dump: Mon Feb 4 12:14:18 2002
DUMP: Dumping /dev/hda7 (/home) to /dev/rmt/0mb on host hpsrv
DUMP: Added inode 7 to exclude list (resize inode)
DUMP: Label: none
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 2598351 tape blocks.
DUMP: Volume 1 started with block 1 at: Mon Feb 4 12:14:20 2002
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: 1.65% done at 142 kB/s, finished in 4:58
...
DUMP: 75.61% done at 176 kB/s, finished in 0:59
DUMP: write: No space left on device
DUMP: End of tape detected
DUMP: write: No space left on device
DUMP: write: No space left on device
DUMP: Closing /dev/rmt/0mb
DUMP: Volume 1 completed at: Mon Feb 4 15:21:28 2002
DUMP: Volume 1 1970350 tape blocks (1924.17MB)
DUMP: Volume 1 took 3:07:08
DUMP: Volume 1 transfer rate: 175 kB/s
DUMP: Change Volumes: Mount volume #2
DUMP: Is the new volume mounted and ready to go?: ("yes" or "no") yes
DUMP: Volume 2 started with block 1970321 at: Mon Feb 4 16:57:21 2002
DUMP: Volume 2 begins with blocks from inode 611797
DUMP: 75.83% done at 39 kB/s, finished in 0:59
...
DUMP: 98.40% done at 177 kB/s, finished in 0:03
DUMP: 100.00% done at 177 kB/s, finished in 0:00
DUMP: Closing /dev/rmt/0mb
DUMP: Volume 2 completed at: Mon Feb 4 18:00:53 2002
DUMP: Volume 2 668010 tape blocks (652.35MB)
DUMP: Volume 2 took 1:03:32
DUMP: Volume 2 transfer rate: 175 kB/s
DUMP: 2638330 tape blocks (2576.49MB) on 2 volume(s)
DUMP: finished in 14988 seconds, throughput 176 kBytes/sec
DUMP: Date of this level 0 dump: Mon Feb 4 12:14:18 2002
DUMP: Date this dump completed: Mon Feb 4 18:00:53 2002
DUMP: Average transfer rate: 175 kB/s
DUMP: DUMP IS DONE
gaston#
|
Interessant an diesem dump ist, dass das Band zu Ende war. Daraufhin wird
ein neues Medium angefordert und auf diesem weiter geschrieben.
dump fordert also automatisch zum Medienwechsel auf, wenn das
Band voll ist.
Stärken und Schwächen
Die Stärken und Schwächen von dump liegen darin, dass es Dateisysteme
sichert. Man ist also nicht frei in der Wahl der Verzeichnisse, die man
sichern will. Andererseits werden komplette Dateisysteme so wieder hergestellt,
wie sie auf der Platte lagen. Soll allerdings neben den im Beispiel verwendeten
Heimatverzeichnissen noch das Spoolverzeichnis
des Mailsystems gesichert werden, ist dump überfordert. Es sei
denn, das Spoolverzeichnis liegt ebenfalls auf einem eigenen Dateisystem.
Sehr elegant ist die interaktive Rücksicherung einzelner Dateien.
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. Vorteile von tar:
- tar ist auf jeder Maschine verfügbar. Es gibt sogar einige Implementationen
auf anderen Betriebssystemen.
- Eine ausgetestete Software.
- tar kann eine Sicherung über mehrere Medien verteilen
- In vielen Implementationen netzwerkfähig.
Nachteile von tar:
- tar kann (in seiner Grundversion) keine special files sichern, ist also
nicht für die Systemsicherung geeignet.
- Etwas umständlich bei der Auswahl einzelner Dateien bei der Rücksicherung.
Zusammensetzung des tar-Kommandos
Operation
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:
| Zeichen | Bedeutung |
| c | Erzeuge ein Archiv |
| x | Entpacke ein Archiv |
| t | Lese das Inhaltsverzeichnis eines Archivs |
Bei den eigenlichen Optionen sind die folgenden von Bedeutung:
- f sicherungsdatei
- Mit f wird angegeben, dass die Sicherung in eine Datei gehen 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 gepackt wird. Dadurch passt natürlich mehr auf das Band. Bei schwachen Maschinen ist allerdings zu prüfen, ob die Komprimierung den Datenstrom abreißen läßt. Das hat bei Bändern den Effekt, dass die Datensicherung um ein vielfaches länger dauert.
- M
- arbeitet mit Medienwechsel. Ist beim Sichern das Medium voll, wird der
Benutzer aufgefordert, das Medium zu wechseln und Return 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
#
|
Absoluter oder relativer Pfad?
Die Beobachtung der gesicherten Dateien 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.
tar xv holt alles zurück
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 wiederhaben möchte. Allerdings wünscht sich tar
den kompletten Pfad, so wie er beim Sichern abgestellt 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 abgestellt worden. Sämtliche Versuche, diese Version von
tar dazu zu bewegen, mit Wildcards zu hantieren 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 solch 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 für das System ein GNU tar 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 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.
Unterschiede im Syntax
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 folgender
Befehl ausgegeben.
| | Sichern | Laden |
| Linux | tar cf /dev/tape /usr/bin | tar xf /dev/tape |
| SCO | tar c8 /usr/bin | tar x8 |
Netzwerksicherung per tar
Netzsicherung über den rshd
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 rcp (remote copy siehe S.\ \gpSeitenverweis{rcp}). Die
Nomenklatur kommt nicht von ungefähr, da beide über eine Pipe über den
rshd (siehe S.\ \gpSeitenverweis{rshd}) implementiert sind.
tar cf idefix:/dev/tape /usr/bin
|
Das lokale Verzeichnis /usr/bin wird auf dem Band der Maschine idefix
gesichert. Da die Sicherung über den rshd erfolgt, muss natürlich
auch die Berechtigungskonfiguration über die .rhosts stimmen.
cpio
cpio ist ein weiteres Programm zur Datensicherung. Es ist sehr
flexibel, was die Bestimmung der Dateien angeht, die zu sichern sind und welche
Dateien wieder zurückzuholen sind. cpio hat einen etwas ungewohnten
Syntax, da es die zu sichernden Dateien dem Standardeingabekanal entnimmt.
Sichert nicht die Dateieigenschaften
cpio behält in der Standardversion weder Uhrzeit, noch Eigner oder
Rechte der Dateien. Per Option kann allerdings die gesicherte Datei das
Originalzeitpunkt nach der Rücksicherung zurück bekommen.
Die special files lassen sich nur mit Administratorrechten und entsprechend
geschalteter Option sichern.
Sichern, Anschauen und Zurückholen
Daten sichern
cpio entnimmt die Namen der zu sichernden Dateien dem stdin.
Dabei muss jeder Dateiname in einer eigenen Zeile stehen. Damit steht der
Befehl cpio typischerweise an zweiter Stelle in einer Pipe und hat
beim Sichern die Option -o. An erster Stelle kann jeder beliebiger
UNIX-Befehl stehen, der eine Dateiliste erzeugt. Das kann ein ls
sein, dann werden die Dateien des aktuellen Verzeichnisses gesichert,
allerdings nicht dessen Unterverzeichnisse.
Will man alle Dateien im Unterverzeichnis sichern, stellt man den Befehl
find voran. Durch dessen flexible Möglichkeiten kann sehr fein
selektiert werden, welche Dateien gesichert werden sollen.
Bei ganz besonders kuriosen Dateizusammenstellungen, kann man die Dateiliste
auch in eine Datei stellen und ein cat darauf machen.
Das Ergebnis, also die Ausgabe des cpio geht auf stdout und
wird durch Ausgabenumlenkung (>) auf das Sicherungsdevice oder die Archivdatei
umgeleitet. Wieder soll das Verzeichnis /home mit allen
Unterverzeichnissen gesichert werden.
# cd /home
# find . -print | cpio -o >/dev/rmt/0mb
(Using tape drive with immediate report mode enabled (reel #1).)
1870 blocks
#
|
Dieser Befehl sichert alle Dateien unterhalb des aktuellen Verzeichnisses auf
das Bandgerät. Nun soll betrachtet werden, was alles auf dem Band vorhanden
ist. Dazu wird die Option -it verwendet. Das Sicherungsgerät wird
als Standardeingabe verwendet.
# cpio -it </dev/rmt/0mb
.
lost+found
tacoss
willemer
notes
notes/.sh_history
notes/.profile
notes/server
notes/.Xpdefaults
notes/~console.tmp
rossow
rossow/.sh_history
rossow/.rhosts
arnold
arnold/.cshrc
arnold/.exrc
arnold/.login
arnold/.profile
arnold/.sh_history
arnold/.rhosts
arnold/bad.tif
arnold/a.out
arnold/hello.cpp
arnold/.history
1870 blocks
#
|
Um die ganze Sicherung zurückzuholen, wird fast die gleiche Befehlskombination
verwendet, wie beim Auslesen des Verzeichnisses. -i bewirkt das
Lesen der Sicherung und -d bewirkt, dass auch Verzeichnisse erstellt
werden. Das Auslesen geschieht im aktuellen Verzeichnis. Vor dem Auspacken
muss also in das Zielverzeichnis gewechselt werden.
# cpio -id </dev/rmt/0mb
1870 blocks
#
|
In der letzten Übung wird nun als einzige Datei die hello.cpp vom
Band geholt. An dieser Stelle zeigt cpio seine große Flexibilität.
In Anschluss an die Option wird in Hochkommata das Muster der gesuchten
Dateienamen angegeben. Dabei können Wildcards verwendet werden.
# rm -r *
# cpio -id '*hello*' </dev/rmt/0mb
1870 blocks
# ll
total 2
drwxrwxrwx 2 arnold users 1024 Dec 31 01:46 arnold
# ll arnold
total 2
-rw-rw-rw- 1 arnold users 64 Dec 31 01:46 hello.cpp
#
|
Wichtige Optionen
Je nach Version des cpio gibt es unterschiedliche Optionen. Genaueres
findet sich in den Manpages. Die hier genannten Optionen dürften in jeder
Version zu finden sein.
- m
- behalte die Modifikationszeit des gesicherten Originals bei.
Wirkt nicht auf Verzeichnisse.
- d
- erzeuge beim Rücksichern die notwendigen Verzeichnisse.
- u
- Ersetze durch die Rücksicherung auch eine neuere Datei als die,
die im Archiv steht.
- x
- Sichere auch special files.
Medien kopieren: dd
dd ist ein Kopierprogramm, das vom >>Input File<< (if) ins >>Output
File<< (of) schreibt. Dabei kann In- und Output sowohl eine Datei als auch
ein Device sein. Auf diese Weise kann dd eine Diskette auf eine Datei
abziehen, um sie hinterher wieder auf eine Diskette ziehen.
dd if=/dev/fd0 of=dumpfile
dd of=/dev/fd0 if=dumpfile
|
Disketten fremder Systeme kopieren
dd muss das Format, mit dem das Medium beschrieben wurde, nicht
unbedingt beherrschen, es muss die Diskette nur direkt lesen können. So kann
man sogar Mac-Disketten auf einer Linux-Maschine kopieren. Da die von
dd erzeugten Datei (hier dumpfile) eine Datei ist wie jede andere,
kann man sie per E-Mail verschicken oder auf CD brennen und kann jederzeit
wieder eine Diskette daraus machen. Dies ist besonders bei bootfähigen
Disketten interessant.
Andere Sicherungstools: Amanda
Das Open Source Projekt AMANDA
(Advanced Maryland Automatic Network Disk Archiver) ist ein Werkzeug
zum Sichern kompletter Netzwerkumgebungen.
Im Zentrum einer solchen Architektur steht der Backupserver, der die
Backupmedien hat. Er zieht von den angeschlossenen Clients die zu sichernden
Images über das Netzwerk, parkt sie gegebenenfalls auf lokalen Platten
zwischen und schafft sie anschließend auf Band.
Amanda hat kein eigenes Datensicherungsformat, sondern verwendet die
maschineneigenen
Datensicherungsmethoden.1)
Amanda kommt als Quelltextdistribution und muss selbst übersetzt werden.
Nach dem Auspacken wird mit dem beigefügten configure die Software
an die Maschine angepasst. Dabei muss auch der Benutzer und die Gruppe
angegeben werden. Soll dies unter dem Benutzer amanda und der Gruppe dasi
erfolgen, wird folgender Aufruf abgesetzt:
hpsrv# ./configure --with-user=amanda --with-group=dasi
|
Anschließend werden die Quellen übersetzt und die erzeugten Binaries
installiert. Dazu braucht die Zielmaschine mindestens einen C-Compiler sowie
lex und yacc, bzw. deren GNU Varianten flex und
bison.
hpsrv# make
hpsrv# make install
|
amanda.conf
Standardmäßig sucht Amanda ihre Konfigurationsdatei amanda.conf im
Verzeichnis /var/lib/amanda/DailySet1. S.u.S.E legt
die Konfiguration in das Verzeichnis /etc/amanda/DailySet1.
Es gibt als gute Vorlage eine Beispielkonfiguration. Dabei sind einige
Einträge anzupassen. In erster Linie ist da das Bandlaufwerk einzutragen.
Hier wird mit dem Parameter >>holdingdisk<< eingestellt, wenn die Platte
als Zwischenspeicher verwendet werden soll. Schließlich wird beispielsweise
comp-root-tar als Art der Datensicherung definiert. In der Definition wird
sich wiederum auf root-tar bezogen. Eine Vielzahl von Beispielen ist in
der Datei schon vorhanden, so dass Sie wahrscheinlich sogar etwas Passendes
finden.
tapetype HP-DAT
tapedev "/dev/rtm/0mnb" # war: "/dev/null"
holdingdisk hd1 {
directory "/u/amanda"
use 1000 Mb
}
define dumptype root-tar {
global
program "GNUTAR"
comment "root partitions dumped with tar"
compress none
index
exclude list "/usr/local/lib/amanda/exclude.gtar"
priority low
}
define dumptype comp-root-tar {
root-tar
comment "Root partitions with compression"
compress client fast
}
|
.amandahosts
Die Datei /var/lib/amanda/.amandahosts enthält eine Liste der
Anwender und ihre Hosts, die Zugriffsrechte haben. Beispiel:
gaston amanda
gaston root
hpsrv amanda
hpsrv root
|
Im gleichen Verzeichnis befindet sich eine Datei disklist, die
alle zu sichernden Platten und die Maschinen angibt, von denen sie kommen.
Der erste Eintrag betrifft die Maschine sol. Das Plattendevice heißt
/dev/sd0a. Der Sicherungstyp >>comp-root<< wird in der amanda.conf
festgelegt. Die zweite Zeile sichert die Partition /dev/hda5 nach
dem gleichen Verfahren.
sol sd0a comp-root-tar
gaston hda5 comp-root-tar
|
Im Client Server Betrieb müssen natürlich die passenden Einträge ind die
/etc/services gemacht werden.
amanda 10080/tcp # Amanda backup services
amanda 10080/udp # Amanda backup services
|
Und eines Eintrages in die /etc/inetd.conf bedarf es auch.
amanda dgram udp wait amanda /usr/lib/amanda/amandad amandad
|
Für Rechner mit MS-Windows gibt es keinen Client für Amanda. Man kann sie
sichern, indem man sie per SAMBA ins Netz
holt und von der entsprechenden UNIX Maschine aus sichert.
Nach der erfolgreichen Konfiguration wird das ganze Gebilde geprüft. Dazu
melden Sie sich als amanda an und verwenden den Befehl amcheck, der
als Parameter die Konfiguration haben muss. Im Beispiel ist das DailySet1.
Mit dem Befehl amlabel wird dem Band ein Name vergeben. Mit dem
Befehl amdump erfolgt die eigentliche Datensicherung. Normalerweise
wird man diesen Befehl in der crontab unterbringen.
amrecover
Die Datenrückholung erfolgt mit dem Befehl amrecover. Das Verfahren
läuft dann so ab, wie beim recover vom dump bereits
beschrieben.
Die Heimatseite von Amanda bietet nicht nur Möglichkeiten
zum Download der Software, sondern auch eine >>FAQ-O-Matic<< und ausführliche
Dokumentation.
Quelle: http://www.amanda.org
Beispiel für eine Sicherung auf CD-RW
Für die Sicherung der Daten meiner Workstation auf CD-RW habe ich mir
einen kleinen Skript geschrieben, der ein Verzeichnis mit meinen Daten abzieht.
Konfigurationsvariablen SAVEDIR und STARTDIR
Die beiden Variablen SAVEDIR und STARTDIR müssen auf den jeweiligen Bedarf
angepasst werden. SAVEDIR ist das Verzeichnis, das alle sichernswerten Daten
enthält. Ich habe zu diesem Zweck ein Verzeichnis namens my im Heimatverzeichnis
angelegt. Soll eine neue CD-RW bearbeitet werden, wird der Skript mit dem
Parameter >>new<< aufgerufen. Dann wird sie gelöscht. Ansonsten gibt es keine
Abhängigkeiten vom Medium. Es können also auch einfache CD-Rohlinge benutzt
werden.
Mehrere Sicherungen auf einer CD
Da ich nicht so viele Daten zu sichern habe, um eine komplette CD zu füllen,
schreibt
der Skript mehrere Sicherungen auf eine CD und verwendet dafür Multisession.
Um die verschiedenen Sicherungsstände leichter erkennen zu können, wird
ein Link angelegt, dessen Name aus dem aktuellen Datum generiert wird.
Der Link zeigt auf das SAVEDIR. Um den Link mitsichern zu können, braucht man
ein leeres Verzeichnis, in das der Link gelegt wird und das komplett gesichert
werden kann. Dies wird in STARTDIR abgelegt. Vorsicht! Der Skript löscht den
Inhalt beim Start, um Reste alter Sicherungen zu beseitigen.
#!/bin/sh
# cddasi: Datensicherung auf CD-R und CD-RW
# (C) Arnold Willemer 5.1.2002
#
# Das Verzeichnis STARTDIR ist das Arbeitsverzeichnis des
# Skripts.
# !!!!!! $STARTDIR wird zu Anfang vollständig gelöscht !!!!!!
# Hier wird ein Link auf das SAVEDIR gelegt und mit dem
# aktuellen Datum versehen. Auf diese Weise wird bei jeder
# Session ein neues Verzeichnis erzeugt, dessen Datum im
# Verzeichnisnamen steht.
STARTDIR=/home/arnold/bin/savedir
SAVEDIR=/home/arnold/my
SPEED=2
DEV=0,3,0
# Räume das Startverzeichnis und lege den Arbeitslink an
cd $STARTDIR
rm *
ln -s $SAVEDIR `date +"%Y%m%d"`
# Auswertung des ersten Parameters
case "$1" in
"blank" )
mkisofs -J -R -f -o image.iso $STARTDIR
cdrecord -v speed=$SPEED dev=$DEV -blank=fast -multi image.iso
;;
"new" )
mkisofs -J -R -f -o image.iso $STARTDIR
cdrecord -v speed=$SPEED dev=$DEV -multi image.iso
;;
"last" )
TRACKPOS=`cdrecord -msinfo dev=0,3,0`
mkisofs -J -R -f -o image.iso -C $TRACKPOS -M $DEV $STARTDIR
cdrecord -v speed=$SPEED dev=$DEV image.iso
;;
* )
TRACKPOS=`cdrecord -msinfo dev=0,3,0`
mkisofs -J -R -f -o image.iso -C $TRACKPOS -M $DEV $STARTDIR
cdrecord -v speed=$SPEED dev=$DEV -multi image.iso
esac
|
Zu guter Letzt muss natürlich noch vor dem Start das Device für den Brenner,
der bei mir SCSI-ID 3 hat in der Variablen DEV angepasst werden. In der
Variablen SPEED wird festgelegt, wie schnell gebrannt wird.
Der Skript cddasi akzeptiert alternativ einen Parameter.
- blank
-
Wird eine CD-RW eingelegt, die gelöscht werden soll, muss dieser
Parameter gewählt werden.
- new
-
Eine neue CD-R oder eine neue CD-RW, die noch nicht beschrieben war, wurde
eingelegt. In beiden Fällen wird nicht versucht, die TRACKPOS zu bestimmen,
was zu einem Abbruch führen würde.
- last
-
Gleich ob CD-R oder CD-RW, im letzten Sichern sollte die CD abgeschlossen
werden. Nach der Verwendung von last kann nicht mehr darauf gebrannt werden.
- *
-
Kein Parameter oder irgend etwas anderes bewirkt ein normales Sichern.
Von der CD wird ermittelt, an welche Position gebrannt werden muss und es
wird per multi auf die CD-R oder CD-RW gebrannt.
1 vgl.
Nemeth, Evi / Snyder, Garth / Seebass, Scott / Hein, Trent R.: UNIX Systemverwaltung. Markt+Technik - Prentice Hall, München, 2001. S. 257--273.
sowie Schmidt, Fabian: Backup ohne Klicks. Linux Magazin 05/2002. S. 52--54.