Login
Newsletter
Werbung

Do, 28. Juni 2012, 15:00

Cloud-Backup mit Bordmitteln

Und jetzt alle zusammen

Bis auf rsync, das den Transfer der Daten vom eigenen Rechner zum Server im Internet übernimmt, wurden alle Komponenten vorgestellt. Jetzt kommt es nur noch auf das Zusammenspiel an. In der Theorie soll das bup-Repository in EncFS abgelegt und dieses verschlüsselte bup-Archiv wiederum hochgeladen werden.

Um die Sache zu vereinfachen, habe ich das Skript encfsBupBackup (Download bei Sourceforge) geschrieben, das diese einzelnen Schritte zusammenfasst und für den Benutzer vereinfacht. Damit das Skript einfach genutzt werden kann, sollte man es in ein Verzeichnis, das im Pfad für ausführbare Dateien (z.B. /usr/local/bin) aufgelistet ist, ablegen und mittels chmod +x encfsBupBackup ausführbar machen.

Beim ersten Aufruf von encfsBupBackup wird eine Vorlage für die Konfigurationsdatei ~/encfsBupBackup.rc angelegt, die man dann mit einem Editor anpassen muss. Neben den Verzeichnissen für EncFS und das bup-Archiv sind das EncFS-Password für das automatische Mounten, sowie die Zugangsdaten für den Internet-Server anzugeben.

Daten sichern

Das Anlegen von EncFS und bup-Repository übernimmt encfsBupBackup, sodass man gleich mit dem Sichern von Daten beginnen kann:

$ tar cv ~ | encfsBupBackup pipeIn "tar-Test2"

Oder auf Dateiebene:

$ encfsBupBackup filesIn "datei-Test2" ~

Das Einhängen vor dem Sichern und anschließende Aushängen übernimmt wiederum das Skript.

Status abfragen

Zur weiteren Vereinfachung enthält encfsBupBackup Funktionen, um den Status des bup-Archives abzufragen.

Neben den Protokollen, die git/bup mitbringen, legt encfsBupBackup ein Eigenes an, das die Namen der Backup-Sätze und die CommitID einer jeden Sicherung enthält. Dieses kann man sich anzeigen lassen mit:

$ encfsBupBackup lsLog

Um nur die Namen aller Backup-Sätze zu bekommen, verwendet man:

$ encfsBupBackup lsBackups

Für die Auflistung der CommitIDs aus dem Backup-Satz tar-Test2 dient folgender Einzeiler:

$ encfsBupBackup lsCommits "tar-Test2"

Die Sicherungsdaten ermittelt man mittels:

$ encfsBupBackup lsDates "datei-Test2"

Daten wiederherstellen

Das Wiederherstellen eines Datenstromes anhand seiner CommitID geschieht unspektakulär via:

$ encfsBupBackup pipeOut c9242bd6bb9cfd9c285f01ebb0dcdacf0c620038 | tar xv

Dateien können folgendermaßen zurückgesichert werden:

$ encfsBupBackup filesOut "datei-Test2" "2012-04-23-171250"

Der Zugriff via FUSE und Webserver geschieht über:

$ encfsBupBackup fuse /tmp/mountpunkt

bzw. über:

$ encfsBupBackup web

Was tun, wenn's klemmt?

In seltenen Fällen kann es vorkommen, dass eine Wiederherstellung aufgrund angeblich fehlender Dateien nicht vorgenommen werden kann. Dies ist aber kein Grund zur Panik, denn nach dem Entschlüsseln des bup-EncFS-Archives funktioniert die Wiederherstellung tadellos.

Um die Entschlüsselung vorzunehmen, verwendet man folgendes Kommando:

$ encfsBupBackup decrypt

Nachfolgende Wiederherstellungsaktionen werden nun aus dem (temporär) entschlüsselten Archiv vorgenommen. Für das Löschen des ungeschützten Archivs gibt es:

$ encfsBupBackup rmDecrypt

Zum Überprüfen der Datenintegrität dient:

$ encfsBupBackup fsck

Hoch damit

Damit aus dem lokalen Backup auch ein »Cloud-Backup« wird, muss es natürlich noch hochgeladen werden. Dies erledigt:

$ encfsBupBackup upload

Warum das Ganze?

Meine Motivation war anfangs das Sichern von Thunderbird-Postfächern, bei denen die E-Mails jeweils in großen Dateien zusammenfasst werden. Innerhalb dieser Dateien verändert sich bei jedem Abholen oder Senden von E-Mails allerdings nur wenig. Daher macht das Sichern von kompletten Zuständen wenig Sinn. Eine intelligente Lösung, die jeweils nur die Differenz speichert, mir aber das Zurücksetzen der Postfächer auf den Zustand eines beliebigen Datums erlaubt, musste her. Nachdem ich ein Skript erstellt hatte, das den kompletten E-Mail-Backup-Vorgang mit den vorgestellten Werkzeugen abdeckte, wollte ich auch weitere Daten effizient sichern. So kam es zu der Entwicklung des Skriptes encfsBupBackup, mit dem ich beliebige Daten durch kurze Skripte sichern lassen kann. Neben den E-Mail-Postfächern sichere ich nun alle wichtigen Dateien und Dokumente sowie den Entwicklungszweig von m23 nebst Datenbank mittels encfsBupBackup.

Autoreninformation

Hauke Goos-Habermann (Webseite) arbeitet freiberuflich als Entwickler und Trainer für Linux und Open-Source-Software. Er ist zudem Hauptentwickler des Softwareverteilungssystems m23 und weiterer OSS sowie Mitorganisator der Kieler Open Source und Linux Tage.

Dieser Artikel ist in freiesMagazin 06/2012 (ISSN 1867-7991) erschienen. Veröffentlichung mit freundlicher Genehmigung.

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Kommentare (Insgesamt: 8 || Alle anzeigen )
Re[4]: Umständlich (Jan T., Fr, 29. Juni 2012)
Re[3]: Umständlich (Jan T., Fr, 29. Juni 2012)
Re[3]: Umständlich (Marcus Koeller, Do, 28. Juni 2012)
Re[2]: Umständlich (jemand, Do, 28. Juni 2012)
Re: schon wieder? (geust, Do, 28. Juni 2012)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung