Backups

Aus Fedorawiki.de

(Weitergeleitet von Backup)
Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung

Dieser Artikel beschäftigt sich mit den verschiedenen Möglichkeiten, unter Fedora Backups zu erstellen. Es kann sehr mühsam sein, größere Datenbestände zu sichern, und diese Sicherung dann auch noch aktuell zu halten. Es gibt deswegen eine Reihe von Werkzeugen, die diese Aufgaben vereinfachen. Die für Fedora wichtigsten werden hier vorgestellt.


Inhaltsverzeichnis

rsync

rsync ist ein Programm, um zwei Ordner, bei Bedarf auch remote (daher das r in rsync) abzugleichen. Dabei ist der Name etwas irreführend: rsync kann nicht synchronisieren, sondern nur replizieren. Das heißt, dass es möglich ist, Veränderungen im Ordner A_original auf den Ordner B_backup zu übertragen, aber nicht umgekehrt - wenn in B_backup etwas geändert wird, wird diese Änderung nicht auf A_original übertragen!

Für solche Fälle ist Unison gedacht.

Verwendung

Die eigentliche Verwendung von rsync findet so statt

rsync -OPTIONEN QUELLE ZIEL 

Ziel und Quelle könne dabei Ordner auf beliebigen Maschinen sein - z.B. auch

rsync -OPTIONEN foo:/home/secureme baa:/home/backup

So können also auch zwei fremde Rechner synchronisiert werden.

Anmerkung Anmerkung: Wird bei einem Quellverzeichnis abschließend ein / mit angegeben, wird nur der Inhalt des Verzeichnisses kopiert, nicht aber das Quellverzeichnis selbst

Die Optionen, die man angeben kann, sind vielfältig. Hier ein Auszug der Wichtigsten:

rsync-Optionen
Option Name Bedeutung
-a archive Rechte, symbolische Links, etc. bleiben erhalten
-b backup Backups werden erstellt
--delete Dateien, die auf der Quelle nicht mehr existieren, werden auch auf dem Ziel gelöscht
-e execute führt ein zusätzliches Kommando aus
-e "ssh" die Übertragung findet über ssh, also verschlüsselt statt
-n dryrun ein Testlauf, der nichts real kopiert
--progress zeigt den Fortschritt während der Übertragung
-r recursive lässt rsync rekursiv arbeiten
--size-only damit schaut rsync beim Aktualisieren nur auf die Dateigröße; nützlich, wenn der Backup-Server es nicht so genau nimmt mit den Zeitstempeln der Dateien
-u update Dateien, die auf dem Ziel schon vorhanden und aktuell sind, werden übersprungen
-v verbose gibt ausführliche Meldungen über den Verlauf und eventuelle Probleme
-z compress komprimiert die Daten

Beispiele

Klassisches Beispiel für das Sichern des eigenen Home-Verzeichnisses auf einem Server im Netz.

rsync -abruvz --delete --progress -e ssh /home/me foobar.com:/backup/home/me

Spiegeln von Verzeichnissen (mit Fortschrittsanzeige)

 rsync -aruv --delete --progress /home/username/  /mnt/ziel/home/username/

Kopieren einer ISO-Image Datei

rsync -auv --progress rsync://ftp-stud.hs-esslingen.de/pub/fedora/linux/releases/8/Fedora/i386/iso/Fedora-8-i386-rescuecd.iso /media/Fedora-8-i386-rescuecd.iso

Besonderheiten

Die deklarierten Ziele von Erfinder und Samba-Entwickler Andrew Tridgell waren:

  • rsync soll mit beliebigen Dateien funktionieren
  • selbst bei großen und vielen Dateien soll das Utility flott arbeiten
  • der Algorithmus darf vorab kein Wissen über Quell- und Zieldateien benötigen
  • geringer Rechenaufwand
  • nicht mehr Daten übertragen als ein komprimierter Diff bräuchte
  • wenige Roundtrips


Ziel ist es, eine Datei (die Zieldatei) von einem Server auf einen Client zu übertragen, der eine Referenzdatei hat, welche möglicherweise zu großen Teilen mit der Zieldatei übereinstimmt.

Dazu wird als erstes vom Client die Referenzdatei in Blöcke einer bestimmten Länge unterteilt, für die jeweils zwei Prüfsummen gebildet und an den Server übertragen werden. Die erste dieser Prüfsummen kann sehr schnell berechnet bzw. in der Datei gefunden werden; die zweite stellt sicher, dass die Blöcke (mit sehr hoher Wahrscheinlichkeit) identisch sind. Danach sucht der Server in der Zieldatei nach den Blöcken, und zwar an jeder Stelle (d. h. nicht nur an Vielfachen der Blocklänge). Damit generiert der Server eine Vorschrift, wie die Zieldatei generiert werden kann, wobei entweder Teile (beliebiger Länge) der Datei übertragen werden oder auf einen der Blöcke aus der Referenzdatei verwiesen wird. Damit erhält der Client nun durch Befolgen dieser Vorschrift eine Kopie der Zieldatei.

Siehe auch


dar

Anmerkung Anmerkung: Zur Zeit gibt es dar noch in keinem Standard-Repository. Man muss es also selbst kompilieren.

Mit Hilfe von dar können Sicherungsarchive erzeugt werden. Vorteile von dar sind unter anderem:

  • die Sicherungs-Dateien werden komprimiert
  • aus der Gesamtsicherung können Einzeldateien wiederhergestellt werden
  • Archive können beliebig unterteilt werden, damit z.B. eine Sicherung auf mehrere CDs aufgeteilt werden kann
  • es sind differentielle Backups möglich - es wird nur der Unterschied zwischen dem letzten Backup und der aktuellen Version gesichert

Links


tar

Das Kommandozeilenwerkzeug tar findet sich bei nahezu jeder Distribution und war ursprünglich dazu gedacht, Backups mit Bandgeräten zu erstellen. Es findet aber heute noch häufig Verwendung, da es Dateien und Ordner in einem Archiv zusammenfassen kann. Da es von Haus aus keine Komprimier-Fähigkeiten mit sich bringt, wird es in der Praxis meist mit Programmen wie bzip2 und gzip eingesetzt.

Verwendung

Die eigentliche Verwendung von tar findet wie folgt statt:

tar -OPTIONEN ZIEL QUELLE

Die Optionen, die man dabei mitgeben kann, sind vielfältig, hier ein Auszug:

tar-Optionen
Option Name bedeutung
-c create erstellt ein Archiv
--exclude=MUSTER lässt Dateien aus, die MUSTER entsprechen; kann auch mit Wildcards benutzt werden
-f filename gibt, gefolgt von einem Dateinamen, den Namen des Archivs an
-j bzip2 komprimiert das Archiv später als bzip2-Datei
-p same-permissions erhält die Dateirechte (nur UNIX, keine ACLs)
-v verbose gibt ausführliche Meldungen über den Verlauf und eventuelle Probleme

Beispiele

Backup des gesamten Nutzerverzeichnisses mit anschließender Komprimierung im bzip2-Format. Dabei werden keine Dateien einbezogen, die irgendwo im Namen den String backup enthalten.

tar -cvpj --exclude=*backup* -f backup.tar.bz2 /home/use



Backups aufteilen

Nicht jedes beschriebene Backup-Format verfügt über die Möglichkeit, auf spezielle Größen zugeschnittene Backups zu erstellen. Soll zum Beispiel eine *.tar.bz2-Datei im Nachhinein auf CDs verteilt werden, obwohl sie die Größe einer DVD hat, benötigt man ein anderes Werkzeug, split. Die Bedienung ist dabei simpel. Soll eine bestehende Datei in mehrere Dateiteile zerlegt werden, reicht der Befehl

split --verbose -b 700m archiv.tgz archiv.tgz.split.

Dabei werden mehrere Dateien mit den Namen archiv.tgz.split.aa, archiv.tgz.split.ab usw. erstellt. Will man diese später wieder zusammen fügen, genügt ein einfaches

cat archiv.tgz.split.* > archiv.tgz


Backups automatisieren

Ein Backup jedesmal von Hand auszuführen ist natürlich nur bedingt Sinn der Sache, da es auch schonmal vergessen werden kann. Besser wäre es, das Backup automatisch und ohne Interaktion durchzuführen. Dies kann auf zwei Wegen geschehen: Einmal pro Tag/Woche/Monat oder zu einer bestimmten Zeit. In diesem Beispiel wird nur auf die erste Variante eingegangen. Das Problem bei Cronjobs für Heim-PCs ist, dass diese normalerweise zu einer bestimmten Zeit durchgeführt werden und der Rechner daher zu diesem Zeitpunkt auch eingeschaltet sein muss. Eine Alternative stellt hier zum normalen cron der Dienst anacron dar, der tägliche Cronjobs beim ersten Start des PCs am Tag, wöchentliche Cronjobs beim ersten Start des PCs in der Woche und monatliche Cronjobs beim ersten Start des PCs im Monat ausführt. anacron ist dabei direkt in Fedora Core enthalten:

[root]# yum install anacron

Zum erstellen eines wöchentlichen Backups erstellt ein Script unterhalb von /usr/local/bin/ in das Ihr die Befehle für das Backup schreibt. Wichtig dabei ist, dass der Name dieses Scripts keine Umlaute und auch keinen Punkt enthält, also z.B. nicht wöchentliches-backup.sh. Es muss zudem natürlich ausführbar sein. Danach wird es verlinkt:

ln -s /usr/local/bin/weekly-backup /etc/cron.weekly/

Es stehen dabei vier Möglichkeiten zur Auswahl:

  • /etc/cron.hourly/ (für eine stündliche Ausführung direkt durch cron, nicht anacron)
  • /etc/cron.daily/ (für eine tägliche Ausführung)
  • /etc/cron.weekly/ (für eine wöchentliche Ausführung)
  • /etc/cron.monthly/ (für eine monatliche Ausführung)

Wichtig dabei zu wissen wäre noch, wann die Cronjobs durch anacron ausgeführt werden:

  • täglich Cronjobs 65 Minuten nach Rechnerstart
  • wöchentliche Cronjobs 70 Minuten nach Rechnerstart
  • monatliche Cronjobs 75 Minuten nach Rechnerstart

Auf einem Desktop-Rechner ist es mitunter sinnvoll, die Startzeiten herunterzusetzen. Dazu muss mit dem Editor der Wahl die Datei /etc/anacrontab editiert werden.

anacron merkt sich dabei natürlich, ob ein Cronjob in diesem Zyklus schon einmal ausgeführt wurde und startet diesen dann nicht noch einmal.

Graphische und alternative Lösungen

Es existieren in den Standard-Repositories diverse graphische Lösungen für Backup-Fragen.

  • pyBackPack ist eine graphische Backup-Lösung für Einzelplatzsysteme.
  • BackupPC ist ein Backup-System, welches eher für Netzwerke und mehrere Systeme gedacht ist. Es bedient sich aber unter anderem rsync zur Sicherung der Daten und besitzt ein Web-Interface. Weitere Informationen können in diesem Atrikel gefunden werden.
  • Amanda ist ebenfalls ein Backup-System, welches für Netzwerke und mehrere Systeme gedacht ist.

Persönliche Werkzeuge