Backups unter Debian GNU/Linux mit duplicity und ftplicity
Dieses Howto beschäftigt sich mit Backups unter Debian GNU/Linux mit den Tools duplicity und ftplicity. ftplicity ist ein Skript der Computerzeitschrift c’t [# c't, Ausgabe 13/2006, Seite 216], das den Umgang mit duplicity vereinfacht.
Autor des Artikels ist Thorsten Walk (thorsten [at] walk-steinweiler [dot] de); der Text ist unter einer Creative-Commons-Lizenz freigegeben: Namensnennung-NichtKommerziell-Weitergabe unter gleichen Bedingungen 2.0 Deutschland
Feedback zu diesem Dokument ist natürlich willkommen, fachliche Fragen bitte an die Mailingliste (howto [at] lists [dot] debianhowto [dot] de).
Contents
|
Installation
duplicity
- apt-get install duplicity
ftplicity
ftplicity ist auf der c't-Homepage verfügbar. Einfach das Archiv herunterladen und entpacken. Die Datei “ftplicity” aus dem Archiv nach /usr/local/bin kopieren und ausführbar machen:
- cd /tmp
- wget ftp://ftp.heise.de/pub/ct/listings/0613-216.tar.gz
- tar xvfz 0613-216.tar.gz
- mv ftplicity-1.1.1/ftplicity /usr/local/bin
- chmod +x /usr/local/bin/ftplicity
Der dazugehörige Artikel bietet weitergehende Informationen zu der Funktionsweise von ftplicity.
GnuPG
Die Backups, die ftplicity anlegt, werden mit GnuPG verschlüsselt abgelegt. Dazu muss auf dem System ein GnuPG-Schlüssel erstellt werden. An dieser Stelle werde ich nur eine kurze Anleitung zum erstellen eines GnuPG Keys geben. Ausführliches findet sich reichlich im Netz.
Installation:
- apt-get install gnupg
Erstellen eines Schluessels:
- gpg --gen-key
Die Installation wäre hiermit schon abgeschlossen. Um die Backups erstellen zu können braucht man allerdings Zugriff auf einen FTP Server.
Konfiguration
Wenn man ftplicity das erste mal startet wird man darauf hingewiesen das noch keine Konfigurationsdatei für den ausführenden User vorhanden ist. ftplicity sollte als root ausgeführt werden damit es auch auf alle Verzeichnisse auf dem System Zugriff hat.
/usr/local/bin/ftplicity Offenbar benutzen Sie ftplicity zum ersten Mal. Eine vorlaeufige Konfigurationsdatei wurde unter $HOME/.ftplicity/conf erstellt. Sie muessen dort die Daten des verwendeten GPG-Schluessels sowie die Zugangsdaten fuer den FTP-Server eintragen, bevor Sie mit dem Backup fortfahren koennen. WICHTIG: Sichern Sie das komplette Konfigurationsverzeichnis nach dem ersten erfolgreichen Backup unbedingt auf einen vertrauenswuerdi- gen externen Rechner und schuetzen Sie es vor unbefugtem Zugriff.
Danach wechselt man in das eben erstellte Verzeichniss und erstellt da folgende Dateien:
-rw------- 1 root root 99 Sep 14 16:03 exclude -rwx------ 1 root root 0 Sep 14 15:11 post -rwx------ 1 root root 0 Sep 14 15:11 pre
Die Datei exclude enthält eine Liste von Dateien die beim Backup nicht berücksichtigt werden sollen. Hier meine als Beispiel:
/boot /dev /initrd /lib /media /mnt /proc /src /sys /tmp /var/tmp /var/run /var/spool
Die Dateien pre und post können Befehle beinhalten die Vor- bzw. nach dem Backupvorgang ausgeführt werden sollen.
Nun machen wir uns an die wichtigste Datei von allen, die “conf”. Diese wurde beim ersten Starten von ftplicity bereits erstellt und muss nur noch angepasst werden.
# Daten fuer GPG-Schluessel
GPG_KEY=_KEY_ID_
GPG_PW='_GPG_PASSWORT_'
# Zugangsdaten fuer FTP-Server (URL-Format)
ZIEL='ftp://_USER_@_SERVER_/_VERZEICHNIS_/'
ZIEL_PW='_FTP_PASSWORT_'
# Basisverzeichnis fuers Backup
QUELLE='/'
# aeltester Wiederherstellungszeitpunkt
HOECHSTALTER=1M
# Ausfuehrlichkeit der Bildschirmausgaben (9 fuer Fehlersuche)
VERBOSITY=4
# Verzeichnis fuer temporaere Dateien. Beim Restore muss dort
# mindestens Patz fuer die groesste Datei im Backup sein
TEMP_DIR=/tmp
Hier eine kurze Beschreibung der wichtigsten Optionen:
- GPG_KEY: Die ID eures zuvor erstellen GPG-Keys.
- GPG_PW: Das Passwort zu eurem Key.
- ZIEL= Der FTP-Server auf dem die Daten abgelegt werden sollen.
- ZIEL_PW= Das Passwort um auf den FTP-Server Zugriff zu erlangen.
Benutzung von ftplicity
An dieser Stelle einfach nur die Hilfe Ausgabe von ftplicity, das Programm ist sehr leicht zu verstehen:
Usage: ftplicity <Kommando> [<Optionen> ...]
Kommandos:
backup: inkrementelles Backup
full: vollstaendiges Backup erzwingen
list: Dateien im Backup auflisten
verify: Backup pruefen und Aenderungen anzeigen
purge [--force]:
veraltete Backup-Archive anzeigen [und loeschen]
cleanup [--force]:
Backup-Verzeichnis aufraeumen (nach Programmabbruch)
restore <Zielpfad> [<Alter>]:
Backup nach <Zielpfad> restaurieren [vom Stand <Alter>]
fetch <Datei/Verzeichnis> <Ziel> [<Alter>]
Datei/Verzeichnis einzeln restaurieren (siehe Beispiel)
Beispiele:
Veraltete Backup-Archive anzeigen und loeschen:
ftplicity purge --force
Vollstaendiges Backup nach /mnt zurueckspielen:
ftplicity restore /mnt
Datei /etc/passwd nach /root/pw restaurieren, Stand vor 4 Tagen:
ftplicity fetch etc/passwd /root/pw 4D
(siehe "man duplicity", Abschnitt TIME FORMATS)
Backupvorgang automatisieren
Um die Backups nicht immer per Hand erstellen zu müssen bietet sich cron an. Die Datei /etc/crontab muss dazu um folgende Zeilen ergänzt werden:
# ftplicity taegliches backup 0 5 * * * root test -x /usr/local/bin/ftplicity && /usr/local/bin/ftplicity backup >/dev/null # ftplicity monatliches full-backup 0 6 1 * * root test -x /usr/local/bin/ftplicity && /usr/local/bin/ftplicity full && /usr/local/bin/ftplicity purge --force >/dev/null Nacharbeiten
Nachdem das erste Backup erfolgreich erstellt wurde, ist es unbedingt erfoderlich, das “.ftplicity” Verzeichnis wegzusichern. Um dem Backupziel die vertraulichen Informationen nicht zugänglich zu machen, ist es sinnvoll jene Daten auf dein eigenen Arbeitsplatzrechner o.ä. zu sichern. Das “.gpg” Verzeichnis muss nicht unbedingt weggesichert werden, da ftplicity den Backup-schlüssel in sein eigenes Verzeichnis kopiert. Beide Verzeichnisse befinden sich z.B. beim Root User in seinem Homedir (”/root”).
Restore
Wenn man das komplette System gesichert hat und das wieder restoren will ist es unbedingt zu empfehlen das Rescuesystem des jeweiligen Hosters (falls vorhanden) zu nutzen. Damit sollte zu erst die gewünschte Partitionierung erstellt werden (kann auch ruhig eine andere als zuvor sein, aber dann sollte man auf entsprechenden Platz in den Filesystemen achten).
Danach muss zuerst duplicity in das Rescuesystem installiert werden und dann das ftplicity Paket. Nun muss das auf den eigenen Rechner gesicherte “.ftplicity” Verzichnisse in den entsprechenden Pfad kopiert werden (bzw. deren Inhalt).
Die Rootpartition sollte nun ins Rescuesystem eingehangen werden (z.b. unter /mnt) und darin dann (evt.) die weiteren Filesysteme. Wichtig: tmp braucht die Rechte 777 und genug Platz, da ftplicity dort arbeitet.
Wichtig sind auch die Einhängepunkte für die virtuellen Dateisysteme wie /proc, /dev und /sys. Laut Artikel soll man die Gerätedateien noch im Rescuesystem wiederherstellen. Theoretisch sollte dies mit
- cd /mnt/dev
- ./MAKEDEV
funktionieren (mehr Infos bringt “man MAKEDEV”), ist aber ungetestet. (Brauchte bisher noch keinen Vollrestore mit ftplicity).
Jetzt sollte der Restore möglich sein mit einem
- ftplicity restore /mnt
Danach muss noch der Bootloader restauriert werden. Bei lilo muss z.b. zuerst die entsprechende lilo.conf in das /etc des Rescuesystems kopiert werden und mit einem einfachen “lilo” neu geschrieben werrden. Hier aber besser die zahlreichen Bootloader Dokus bemühen. Nun ein Reboot absetzen und hoffen, dass alles wieder funktioniert.
Alle Informationen ohne Gewähr, da ungetestet.
Wie komme ich an die ID des GPG Schlüssels?
Bei Erstellung des Schlüssels wird die ID eigentlich mitgeliefert. Wer dennoch nachträglich die ID erfahren muss, setzt ein
- gpg --list-keys
Die Ausgabe liefert nun je nach Schlüssel eine “pub”, eine “uid” und eine “sub” Zeile. Wer seinen Schlüssel sinnvoller Userinfos mitgegeben hat, wird ihn direkt erkennen, ansonsten kann man auch über das Erstellungsdatum auf den richtigen Schlüssel schliessen.
Folgend eine Beispielausgabe, das fettgedruckte ist dann die Schlüssel-ID:
- pub 1024D/1234ABCD 2006-11-16
Bugs
Falls ihr einen Fehler 450/550 erhaltet und das FTP Ziel Verzeichniss leer ist, einfach eine leere Datei (touch emptyfile) in das FTP-Zielverzeichniss laden, dann sollte es funktionieren. Für weitere Infos bitte im GNU Bugtracker schauen, das ganze half bei mir auch gegen einen 550er Fehler.
Ein weiterer Bug ist bei NT-FTPs zu erwarten. Diese haben Probleme mit langen Dateinamen/Sonderzeichen. Ich habe es wie folgt lösen können: Zeile 82 von /usr/local/bin/ftplicity (oder wo auch immer es installiert ist) von “$@” zu –short-filenames “$@” abändern (Problemlösung von Christiane Ruetten)
Netmarks
Quelle
- Dieser Artikel basiert auf einem Beitrag aus dem Debain-Howto; der Originalbeitrag wurde von Thorsten Walk (thorsten [at] walk-steinweiler [dot] de) verfasst und findet sich unter http://www.debianhowto.de/doku.php/de:howtos:sarge:backup_ftplicity.
Ähnliche Beiträge
- Mounten eines FTP-Servers unter Debian GNU/Linux
- Backups unter Debian GNU/Linux - Grundlagen und Beispiele
- Erste Debian Mini Konferenz in Deutschland
- IT- und Telekommunikations-Trends 2010
- Abwehr von Schadprogrammen im Web Top-Thema 2010
- Munin
- Upgrade von Etch auf Lenny
- Open Source auf der CeBIT 2009
- Evi Nemeth, Garth Snyder, Trent R. Hein: Linux-Administrations-Handbuch (2009)
- Debian GNU/Linux 5.0 veröffentlicht
- Umzug auf den neuen Strato HighQ-Server MR6
- Installation zusätzlicher Anwendungen auf dem Strato HighQ-Server MR6
- Vorgefundene Konfiguration des Strato HighQ-Servers MR6
- Ausstattung des Strato HighQ-Servers MR6
- Erfahrungsbericht zum HighQ-Server MR6 von Strato unter Debian GNU/Linux





Neueste Kommentare
vor 2 Tage 19 Stunden
vor 1 Woche 3 Tage
vor 16 Wochen 23 Stunden
vor 21 Wochen 23 Stunden
vor 19 Wochen 3 Tage
vor 19 Wochen 3 Tage
vor 19 Wochen 3 Tage
vor 19 Wochen 4 Tage
vor 20 Wochen 21 Sekunden
vor 23 Wochen 1 Tag