Duplicity: Unterschied zwischen den Versionen

Aus
Keine Bearbeitungszusammenfassung
(+TOC)
Zeile 33: Zeile 33:
5. Test mit:
5. Test mit:
<pre style="margin-left:20px">DS> duplicity --version</pre>
<pre style="margin-left:20px">DS> duplicity --version</pre>


== Verschlüsselung ==
== Verschlüsselung ==
Die folgenden Schritte sind nur notwendig, wenn die Backups verschlüsselt werden sollen. Das Ganze muss einmalig durchgeführt werden. Wenn man bereits Schlüssel besitzt, können die auch verwendet werden.
Die folgenden Schritte sind nur notwendig, wenn die Backups verschlüsselt werden sollen. Das Ganze muss einmalig durchgeführt werden. Wenn man bereits Schlüssel besitzt, können die auch verwendet werden.


1. Schlüssel mittels [http://www.gnupg.org/ GnuPG] erstellen:
1. Schlüssel mittels [http://www.gnupg.org/ GnuPG] erstellen:
Zeile 45: Zeile 43:
<pre style="margin-left:20px">DS> gpg2 --list-keys</pre>
<pre style="margin-left:20px">DS> gpg2 --list-keys</pre>
:Wichtig ist die 8-stellige Buchstaben-Ziffer-Kombination in der ersten Zeile (wenn es nur einen Schlüssel gibt), das ist die ID von dem Schlüssel.
:Wichtig ist die 8-stellige Buchstaben-Ziffer-Kombination in der ersten Zeile (wenn es nur einen Schlüssel gibt), das ist die ID von dem Schlüssel.


'''Achtung:''' Auf die Schlüssel (und das dazugehörige Passwort) sollte man gut aufpassen. Sollten die verloren gehen, kommt man nicht mehr an die damit verschlüsselten Daten heran.
'''Achtung:''' Auf die Schlüssel (und das dazugehörige Passwort) sollte man gut aufpassen. Sollten die verloren gehen, kommt man nicht mehr an die damit verschlüsselten Daten heran.


== Allgemeine Parameter ==
== Allgemeine Parameter ==
Zeile 58: Zeile 54:
* Wenn keine Verschlüsselung verwendet werden soll:
* Wenn keine Verschlüsselung verwendet werden soll:
: <code>--no-encryption</code>
: <code>--no-encryption</code>


== Backup ==
== Backup ==
Zeile 64: Zeile 59:
<pre style="margin-left:20px">DS> duplicity ALLGEMEINE_PARAMETER QUELLE ZIEL</pre>
<pre style="margin-left:20px">DS> duplicity ALLGEMEINE_PARAMETER QUELLE ZIEL</pre>
Wenn noch kein Backup stattgefunden hat, wird ein vollständiges erstellt (full backup). Ansonsten wird inkrementell basierend vom letzten Backup weitergemacht (also nur die geänderten / neuen Dateien). Die Backup-Dateien (.tar) werden entsprechend der "volsize" (Standard 25 Mb) aufgeteilt.
Wenn noch kein Backup stattgefunden hat, wird ein vollständiges erstellt (full backup). Ansonsten wird inkrementell basierend vom letzten Backup weitergemacht (also nur die geänderten / neuen Dateien). Die Backup-Dateien (.tar) werden entsprechend der "volsize" (Standard 25 Mb) aufgeteilt.


'''GMail''' (mit Verschlüsselung, Zeile umgebrochen):
'''GMail''' (mit Verschlüsselung, Zeile umgebrochen):
Zeile 78: Zeile 72:
:PASSWORT - das Passwort (kann man inkl. des : weglassen, dann muss man es immer eingeben)
:PASSWORT - das Passwort (kann man inkl. des : weglassen, dann muss man es immer eingeben)
:Am Ende kann ein Pfad angehängt werden, wenn das Backup in einen Ordner soll. Dieser muss bereits am Ziel existieren.
:Am Ende kann ein Pfad angehängt werden, wenn das Backup in einen Ordner soll. Dieser muss bereits am Ziel existieren.


== Status ==
== Status ==
Zeile 98: Zeile 91:
Anzeige der enthaltenen Dateien:
Anzeige der enthaltenen Dateien:
<pre style="margin-left:20px">DS> duplicity list-current-files ALLGEMEINE_PARAMETER ZIEL</pre>
<pre style="margin-left:20px">DS> duplicity list-current-files ALLGEMEINE_PARAMETER ZIEL</pre>


== Wiederherstellen ==
== Wiederherstellen ==
Zeile 104: Zeile 96:
<pre style="margin-left:20px">DS> duplicity ALLGEMEINE_PARAMETER ZIEL QUELLE</pre>
<pre style="margin-left:20px">DS> duplicity ALLGEMEINE_PARAMETER ZIEL QUELLE</pre>
Wenn man nur einzelne Dateien haben möchte, kann man diese mit "<code>--file-to-restore PFAD</code>" angeben.
Wenn man nur einzelne Dateien haben möchte, kann man diese mit "<code>--file-to-restore PFAD</code>" angeben.


== Aufräumen ==
== Aufräumen ==
Zeile 112: Zeile 103:
<pre style="margin-left:20px">DS> duplicity remove-all-but-n-full 1 --force ALLGEMEINE_PARAMETER ZIEL
<pre style="margin-left:20px">DS> duplicity remove-all-but-n-full 1 --force ALLGEMEINE_PARAMETER ZIEL
DS> duplicity cleanup --extra-clean --force ALLGEMEINE_PARAMETER ZIEL</pre>
DS> duplicity cleanup --extra-clean --force ALLGEMEINE_PARAMETER ZIEL</pre>
__NOTOC__

Version vom 1. August 2011, 13:42 Uhr

duplicity ist ein Backup-Programm, das eine Vielzahl von Zielen unterstützt, unter anderem:

  • lokal,
  • ssh/scp,
  • rsync,
  • ftp,
  • WebDAV,
  • IMAP (E-Mail) oder
  • Amazon S3.

Weiterhin können die Backups mittels GnuPG verschlüsselt werden.

duplicity verwendet inkrementelle Backups. Mittels des rsync-Algorithmus werden die Änderungen erfasst. Die Dateien werden mittels tar gepackt, für Deltas wird rdiff verwendet. Im Zweifelsfall könnte man also auch direkt die Backup-Dateien entpacken. Die Metadaten werden für den schnelleren Zugriff unter "~/.cache/duplicity/" zwischengespeichert. Wenn die lokalen fehlen, werden sie erst runtergeladen.

Voraussetzungen

Installation

1. Konsole auf der DS öffnen.
2. Mittels IPKG installieren, notwendige Abhängigkeiten werden automatisch mit installiert:

DS> ipkg install py26-duplicity

3. Das Skript erwartet "gpg", installiert wird aber gpg2, also das fixen:

DS> cd /opt/bin
DS> ln -s gpg2 gpg

4. Die Version 0.6.11 von duplicity (aktuelle zum Zeitpunkt der Erstellung dieser Seite) hat einen Bug, der inkrementelle Backups unmöglich macht (leere Manifest-Dateien auf der Ziel-Seite). Zum Fixen sind folgende Schritte notwendig. Bei neueren duplicity-Version ist dies ggf. nicht mehr nötig.

DS> cd wo_die_datei_liegt
DS> tar -xvf GnuPGInterface-0.3.2.tar.gz
  • Installierte ersetzen:
DS> cp GnuPGInterface-0.3.2/GnuPGInterface.py /opt/lib/python2.6/site-packages/duplicity/
DS> rm /opt/lib/python2.6/site-packages/duplicity/GnuPGInterface.pyc

5. Test mit:

DS> duplicity --version

Verschlüsselung

Die folgenden Schritte sind nur notwendig, wenn die Backups verschlüsselt werden sollen. Das Ganze muss einmalig durchgeführt werden. Wenn man bereits Schlüssel besitzt, können die auch verwendet werden.

1. Schlüssel mittels GnuPG erstellen:

DS> gpg2 --gen-key
(Das kann ein Bissel dauern. Alternativ kann man die Schlüssel auch auf einem anderen Rechner erstellen und dann importieren, unter Windows z.B. mit GPG4Win. In dem Fall nicht vergessen, den Schlüssel als vertrauenswürdig zu kennzeichnen.)

2. Schlüssel anzeigen:

DS> gpg2 --list-keys
Wichtig ist die 8-stellige Buchstaben-Ziffer-Kombination in der ersten Zeile (wenn es nur einen Schlüssel gibt), das ist die ID von dem Schlüssel.

Achtung: Auf die Schlüssel (und das dazugehörige Passwort) sollte man gut aufpassen. Sollten die verloren gehen, kommt man nicht mehr an die damit verschlüsselten Daten heran.

Allgemeine Parameter

Die folgenden Parameter sind bei allen Aufrufen von duplicity anzugeben:

  • Wenn Verschlüsselung verwendet werden soll:
--encrypt-key "XXXXXXXX" --sign-key "XXXXXXXX" - wobei XXXXXXXX die Schlüssel-ID von oben ist
duplicity fragt automatisch nach dem Passwort. Wenn man dies umgehen will (zur Automatisierung), kann folgender Befehl (vor dem Aufruf von duplicity) verwendet werden:
export PASSPHRASE=GPGPASSWORT
  • Wenn keine Verschlüsselung verwendet werden soll:
--no-encryption

Backup

Zum Backup ist folgender Befehl zu verwenden:

DS> duplicity ALLGEMEINE_PARAMETER QUELLE ZIEL

Wenn noch kein Backup stattgefunden hat, wird ein vollständiges erstellt (full backup). Ansonsten wird inkrementell basierend vom letzten Backup weitergemacht (also nur die geänderten / neuen Dateien). Die Backup-Dateien (.tar) werden entsprechend der "volsize" (Standard 25 Mb) aufgeteilt.

GMail (mit Verschlüsselung, Zeile umgebrochen):

DS> duplicity --encrypt-key "XXXXXXXX" --sign-key "XXXXXXXX" --volsize 10 --imap-mailbox "LABEL" 
/volume1/was_auch_immer/ imaps://ACCOUNT:PASSWORT@imap.gmail.com/ADRESSE
LABEL - das Label muss schon existieren
ACCOUNT - der Teil vor dem @ der Adresse
PASSWORT - das Passwort (kann man inkl. des : weglassen, dann muss man es immer eingeben)
ADRESSE - Absende-Addresse für die Mails, sollte für jeden Backup-Job unterschiedlich sein

GMX (Webdav, keine Verschlüsselung):

DS> duplicity --no-encryption /volume1/was_auch_immer/ webdavs://KUNDENUMMER:PASSWORT@mediacenter.gmx.net/
KUNDENUMMER - die Kundennummer bei GMX
PASSWORT - das Passwort (kann man inkl. des : weglassen, dann muss man es immer eingeben)
Am Ende kann ein Pfad angehängt werden, wenn das Backup in einen Ordner soll. Dieser muss bereits am Ziel existieren.

Status

Anzeige des Status:

DS> duplicity collection-status ALLGEMEINE_PARAMETER ZIEL
gibt sowas in der Form:
Chain start time: Thu Jan 20 19:05:05 2011
Chain end time: Sun Feb  6 04:00:17 2011
Number of contained backup sets: 22
Total number of contained volumes: 55
 Type of backup set:                            Time:      Num volumes:
                Full         Thu Jan 20 19:05:05 2011                34
         Incremental         Thu Jan 20 19:45:23 2011                 1
         Incremental         Thu Jan 20 19:49:01 2011                 1
--snip --
         Incremental         Sat Feb  5 04:00:18 2011                 1
         Incremental         Sun Feb  6 04:00:17 2011                 1

Anzeige der enthaltenen Dateien:

DS> duplicity list-current-files ALLGEMEINE_PARAMETER ZIEL

Wiederherstellen

Zum Wiederherstellen von Dateien muss nur die Angabe von Quelle und Ziel umgedreht werden:

DS> duplicity ALLGEMEINE_PARAMETER ZIEL QUELLE

Wenn man nur einzelne Dateien haben möchte, kann man diese mit "--file-to-restore PFAD" angeben.

Aufräumen

Muss man bedenken, dass durch die inkrementellen Backups der Platzbedarf auf dem Ziel immer weiter wächst. Daher sollte man von Zeit zu Zeit aufräumen. Dazu ein neues vollständiges Backup erzwingen:

DS> duplicity full ALLGEMEINE_PARAMETER QUELLE ZIEL

Und anschließend das vorhergehende Set und die jetzt überflüssigen Metadaten löschen:

DS> duplicity remove-all-but-n-full 1 --force ALLGEMEINE_PARAMETER ZIEL
DS> duplicity cleanup --extra-clean --force ALLGEMEINE_PARAMETER ZIEL