LPI-Prüfungsvorbereitung LPIC-2

> # Backup Aufgaben

> Bewertung 2

> Die Kandidaten sollten in der Lage sein, einen Backup-Speicherplan für ein Netz aufzubauen.

> In diesem Prüfungsziel geht es sowohl um das prinzipielle Verständnis von Backup-Techniken, als auch um die sichere Handhabung aller möglichen Programme, die für Backups zur Verfügung stehen. Die meisten dieser Programme wie etwa find, tar oder cpio sollten eigentlich noch aus der Vorbereitung für die LPIC1-Zertifizierung her bekannt sein, trotzdem werden sie hier nochmal angesprochen.

> ## Prinzipielle Fragen für Backup-Techniken

> ### Medien für Backups

> Bei der Planung von Backup Strategien stellt sich natürlich zunächst einmal die Frage, gegen welche Art von Datenverlust man sich absichern will. Die klassischen Ursachen von Datenverlust sind
> - Festplattencrash
> - Feuer oder Wasserschaden
> - Diebstahl
> Eine Absicherung von Daten auf anderen lokalen Speichermedien oder eine Sicherung über Redundanz (RAID) kann nur für die erste genannte Ursache Sicherheit bieten. Erst wenn die Backup-Medien Wechselmedien sind, die nicht nur außerhalb des Computers, sondern auch außerhalb des Gebäudes aufbewahrt werden, kann auch Sicherheit gegen Diebstahl oder Feuer/Wasserschaden gewonnen werden. Aus diesem Grund verbieten sich alle rein lokalen Lösungen für ein Backup.

> Für Backup-Lösungen stehen verschiedene Medien zur Verfügung, die hinlängliche Sicherheit bieten. In der Praxis spielen immer noch Bandlaufwerke eine große Rolle, auch wenn sie heute ernsthafte Konkurrenz von wiederbeschreibbaren CD-ROMs oder DVDs bekommen.

> Für die Bandlaufwerke spricht, dass sie in ihrer Verlässlichkeit ungeschlagen sind. Die Haltbarkeit von Magnetbändern ist - verglichen mit allen anderen Speichermedien - enorm. Einer ihrer Nachteile ist die langsame Geschwindigkeit, auch wenn moderne DAT-Streamer inzwischen durchaus mit anderen Medien mithalten können.

> ### Verschiedene Arten von Backups

> Es gibt unterschiedliche Ansätze für Backup-Strategien. Neben der kompletten Absicherung des gesamten Datenbestandes (Vollbackup) bietet es sich an, regelmäßig nur diejenigen Daten in ein Backup aufzunehmen, die sich seit dem letzten Backup verändert haben. In diesem Fall spricht man von einem inkrementellen oder differentialen Backup. Werden hingegen nur bestimmte Teile des Dateisystems in ein Backup aufgenommen, so wird das als partielles Backup bezeichnet.

> Grundsätzlich ist eine Sicherheit eines Systems nur dann gewährleistet, wenn in regelmäßigen Abständen neben partiellen oder differentiellen Backups auch Vollbackups gemacht werden.

> ## Partielle und manuelle Backups mit tar

> Um schnell ein Verzeichnis oder ein paar Dateien zu sichern ist die Anwendung von dump und restore oder anderen großen Backup-Programmen sicherlich übertrieben. Hier findet das Programm tar seine Anwendung. tar steht für Tape Archiver, ist also grundsätzlich auch gedacht gewesen, Backups auf Bandlaufwerke zu schreiben. Heute wird tar aber sehr häufig eingesetzt, um Verzeichnisse oder Dateien in eine Archivdatei zu packen, die dann auf anderen Medien abgespeichert werden kann oder auch an andere User weitergegeben werden kann. Vor der Einführung der modernen Paket-Manager (RPM, DPKG) war das tar-Format das bestimmende Format für Linux-Distributionen.

> Tar wird sowohl zum Erstellen, als auch zum Entpacken von Archiven benutzt. Es ist also kein zusätzlicher Entpacker wie etwa restore nötig.

> Wie schon dump und restore kennt auch tar die Option -f Dateiname mit der angegeben wird, welche Datei als Medium zum Speichern (oder entpacken) des Archivs verwendet werden soll. Auch hier kann entweder eine Gerätedatei eines Bandlaufwerks, eine reguläre Datei oder ein Bindestrich (für StdIn bzw StdOut) angegeben werden.

> Tar selbst nimmt keinerlei Komprimierung vor, arbeitet jedoch gerne mit dem gzip-Programm zusammen. Musste man früher die Archivdatei noch manuell komprimieren, so kennt tar heute die Optionen -z (komprimieren oder dekomprimieren mit gzip) und -Z (komprimieren oder dekomprimieren mit compress - veraltet) um selbstständig gleich gepackte Archive zu erstellen oder zu entpacken. Die jeweiligen Programme gzip und compress müssen dazu aber vorhanden sein, tar ruft sie nur auf, es kann selbst keine Kompression vornehmen.

> Die normale Endung einer Archivdatei, die mit tar hergestellt wurde heisst in der Regel {\tt .tar} - wurde das Archiv mit gzip komprimiert trägt es standardmäßig die Endung {\tt .tar.gz} oder (um auch DOS-konform zu sein) {\tt .tgz}. Wurde die Archivdatei mit compress komprimiert, so endet ihr Name meist auf {\tt .tar.Z}

> Die drei wichtigsten Funktionen von tar sind

> - Erstellen (create) von Archiven (-c)
> - Inhaltsverzeichnis (table of content) von Archiven anzeigen (-t)
> - Archive entpacken (extract) (-x)

> Um ein Archiv mit dem Namen {\tt Test.tgz} anzulegen, das mit gzip komprimiert ist und alle Dateien des Verzeichnisses {\tt Testdir} enthält, rufen wir tar folgendermaßen auf:

>       tar -czf Test.tgz Testdir

> Um den Inhalt dieses frisch geschaffenen Archivs anzusehen schreiben wir:

>       tar -tzf Test.tgz

> Und um das Archiv im aktuellen Verzeichnis wieder zu entpacken ist der Befehl

>       tar -xzf Test.tgz

> nötig. Wird zusätzlich noch die Option -v angegeben, so arbeitet tar "geschwätzig" (verbose), gibt uns also mehr Informationen mit. Insbesondere beim Ansehen des Inhaltsverzeichnis ist das eine gute Idee. Aber vorsicht: Der erste Parameter von tar legt die Aktion fest (c oder t oder x), die Parameter v und z folgen beliebig. Der f-Parameter kommt am Schluß, denn ihm folgt der Dateiname.

> ## Archive mit cpio bearbeiten

> Anstelle von tar kann auch das Programm cpio verwendet werden, um Archive zu erstellen oder zu bearbeiten. cpio kann dabei verschiedene Formate - unter anderem auch das tar-Format - bearbeiten. Ein großer Vorteil von cpio ist der, dass die Liste der zu archivierenden Dateien nicht auf der Kommandozeile (wie bei tar) erwartet wird, sondern auf der Standard-Eingabe. Dadurch ist es möglich, die Ergebnisse etwa des find-Befehls direkt an cpio weiterzupipen und so ein Archiv mit den Suchergebnissen aufzubauen.

> cpio arbeitet in drei verschiedenen Modi:

> - copy-out
>   Dateien werden in ein Archiv geschrieben (out meint die Ausgabe in ein Archiv) Dieser Modus wird über den -o Parameter eingeleitet.
> - copy-in
>   Dateien werden aus einem Archiv extrahiert (in meint die Eingabe ins Dateisystem) Dieser Modus wird über den -i Parameter eingeleitet.
> - copy-pass
>   Dateien werden von einem Ort zu einem anderen kopiert, quasi eine Kombination aus copy-out und copy-in, ohne jedoch tatsächlich ein Archiv zu erstellen. Dieser Modus wird über den -p Parameter eingeleitet.
> Durch die Verwendung unterschiedlicher Formate und die Fähigkeit die zu archivierenden Dateien sowohl aus einer Dateiliste, als auch von der Standard-Eingabe zu lesen, ist cpio wesentlich flexibler als tar. Allerdings ist es auch um einiges komplizierter anzuwenden.

> ## Ein- und Ausgabe mit dd

> Um Dateien beliebiger Art (in unserem Fall speziell Archivdateien) von und auf Gerätedateien zu kopieren, existiert das sehr nützliche (und sehr häufig verwendete) Programm dd. dd steht für DiskDump und ermöglicht es, Daten von Gerätedateien zu regulären Dateien zu kopieren oder umgekehrt. Es ist natürlich auch möglich, von Gerätedatei zu Gerätedatei zu kopieren. Die grundsätzliche Form ist dabei

>        dd if=Eingabedatei of=Ausgabedatei bs=Blockgröße count=Anzahl

> Dieser Befehl kopiert Anzahl Blöcke der Größe Blockgröße aus der Eingabedatei in die Ausgabedatei. Dabei können sowoh Ein-, als auch Ausgabedatei entweder Gerätedateien oder reguläre Dateien sein. Wird die Angabe der Blockgröße weggelassen, so werden die "natürlichen" Blockgrößen der jeweiligen Geräte verwendet. Wird die Anzahl der zu lesenden Blöcke weggelassen, so werden alle Blöcke der Datei (oder des Gerätes) gelesen. So kann z.B ein komplettes Image einer Festplatte oder Partition (oder Diskette oder CDROM) in eine Datei durch den Befehl

>       dd if=Gerätedatei_des_Laufwerks  of=Imagedateiname

> erstellt werden. Mit dem umgekehrten Befehl

>       dd of=Gerätedatei_des_Laufwerks  if=Imagedateiname

> wird das entsprechende Image wieder auf das Gerät geschrieben.

> Durch die Angabe von ibs= (Input-Blocksize) und obs= (Output-Blocksize) kann sogar noch zwischen verschiedenen Blockgrößen bei Ein- und Ausgabe unterschieden werden.

> Zusätzlich kann dd auch noch Konvertierungen der zu kopierenden Blöcke vornehmen, wie etwa die Reihenfolge der Bytes in einem Datenwort oder Klein-Großschreibung.

> Für die Backup-Technik ist dd besonders interessant, weil damit Archivdateien direkt auf Band geschrieben werden können oder von Bändern gelesen werden können.