Verschlüsseltes, inkrementelles Backup mit Duplicati

Status
Für weitere Antworten geschlossen.

trevorreznik

Gesperrt
Mitglied seit
24. Nov 2010
Beiträge
386
Punkte für Reaktionen
0
Punkte
0
Hallo,

hier eine kurze Anleitung, wie man verschlüsselte, inkrementelle Backups direkt von der Diskstation auf nahezu beliebige Onlinespeicher machen kann. Zum Einsatz kommt dabei die Software Duplicati. Getestet habe ich auf einer DS211j. Hier ist die Anleitung:

Installation

  1. Über die Paketverwaltung der DS das Paket "Mono" installieren
  2. Von der Duplicati-Download-Seite das ZIP-Paket herunterladen (ich habe 1.3.2 und dann 1.3.2.1452 genommen - funktionierte beides).
  3. Das ZIP entpacken und auf die DS verschieben.
  4. Dann geht es auf der Konsole (telnet oder SSH) weiter.
  5. Das entpackte Verzeichnis "Duplicati" nach z.B. /opt/Duplicati verschieben
  6. Kurztest, ob Mono geht: mono -V
  7. Kurztest, ob Duplicati geht: mono Duplicati.CommandLine.exe help


Backup

Danach habe ich ein erstes Backup zum Google Drive (Google Docs) gemacht. Das sah dann so aus:
Rich (BBCode):
mono Duplicati.CommandLine.exe backup /volume1/Documents googledocs://backup 
--google-username=****** 
--google-password=******
--passphrase=******
--full-if-more-than-n-incrementals=10
--accept-any-ssl-certificate

Das hat soweit gut funktioniert. Auf der DS wurden die Daten in /volume1/Documents gepackt und verschlüsselt und anschließend zu Google hochgeladen. Das erste BAckup ist komplett, dann folgen 10 mal nur die Änderungen (inkrementell) und dann wird wieder ein neues Backup gemacht.

Danach habe ich noch mit ein paar Optionen herumgespielt:

--volsize=20MB
Das ist die Größe der Archive in die hinein die Quelldaten verpackt werden. 10MB ist default. Ich habe auch mit 20MB und 150MB gespielt. Bei 20MB lief das Temporärverzeichnis der DS voll. Da habe ich Duplicati erstmal ein anderes Temp-Verzeichnis zugewiesen (siehe nächster Punkt).

--tempdir=/volume1/sharename
Duplicati stückelt das Backup in kleinere Volumes. Bei einer Größe von 20MB pro Volume ist dann bereits das Temporärverzeichnis auf der DS vollgelaufen. Daher ist es ratsam, bei großen Volumes (--volsize=...) das Temporärverzeichnis woanders hinzulegen.

--compression-level=0
Ich hatte viele Media-Dateien, die bereits komprimiert waren (jpg z.B.). Daher habe ich dem Prozessor hier ein wenig Ruhe gegönnt und die Kompression heruntergeschraubt.

--thread-priority=low
Die anderen Prozesse sollen sich vordrängeln dürfen.

--max-upload-pr-second=500KB
Ich habe 1MB Upload-Bandbreite und möchte Duplicati davon die Hälfte zur Verfügung stellen.


Alte Backups löschen
Alte BAckups kann man z.B. löschen mit
Rich (BBCode):
mono Duplicati.CommandLine.exe delete-all-but-n 20 googledocs://backup 
--force
--google-username=****** 
--google-password=******
--passphrase=******
--accept-any-ssl-certificate
Das --force muss man angeben, damit die Dateien gelöscht werden. Ansonsten macht Duplicati nur einen Simulationsdurchlauf, löscht aber nix. Egal was man macht, ein funktionierendes Backup bleibt immer übrig. Wenn das auch noch weg soll, gibt es dafür einen Schalter.

Andere Möglichkeiten zum Löschen (nach Alter etc.) hat man auch. Da empfiehlt sich ein Blick in die Hilfe: mono Duplicati.CommandLine.exe help


Wer nun Interesse an Duplicati auf der DS hat, findet auf der Duplicati Webseite noch mehr Infos.
 

amarthius

Super-Moderator
Teammitglied
Mitglied seit
03. Jun 2009
Beiträge
6.816
Punkte für Reaktionen
33
Punkte
174
Danke für die Anleitung. Ein erstes Testbackup mit Restore lief schonmal durch. Werde mich die Tage mal weiter damit beschäftigen.

Gibt es eine Hilfeseite wo die Optionen und Parameter für die einzelnen Cloudanbieter (Strato, Amazon,..) gelistet sind?

Wie groß sind die Daten die du sicherst? Hast du schon einen Restore durchgeführt?
 

trevorreznik

Gesperrt
Mitglied seit
24. Nov 2010
Beiträge
386
Punkte für Reaktionen
0
Punkte
0
Gibt es eine Hilfeseite wo die Optionen und Parameter für die einzelnen Cloudanbieter (Strato, Amazon,..) gelistet sind?

Wie groß sind die Daten die du sicherst? Hast du schon einen Restore durchgeführt?


Die Optionen sind für alle Anbieter weitgehend identisch. Für ein paar Anbieter gibt es aber ein paar Sonderlocken, wie z.B. für S3. Hilfe dazu gibt es per "mono Duplicati.CommandLine.exe help". Dort werden alle unterstützten Protokolle und Anbieter aufgelistet und dann geht es z.B. mit "mono Duplicati.CommandLine.exe help skydrive" oder "mono Duplicati.CommandLine.exe help S3" weiter. Das macht Duplicati genauso für andere Themen wie z.B. backup, restore, delete-all-but-n, encryption, compression, time, size.

Die Größe meiner gesicherten Dateien ist unterschiedlich. Die einzelnen Dateien gehen von 1kB bis hin zu 500MB. Dabei handelt es sich um Text- und Konfigdateien sowie mein Foto-Archiv inklusive Videoaufnahmen. Insgesamt kommen da ca. 100GB zusammen, die ich aber in 10 kleine Jobs aufgeteilt habe, da mein Fotoarchiv nach Jahren sortiert ist. Und weil sich bei den alten Daten nichts ändert, brauche ich da auch kein Backup mehr zu machen und vermeide dadurch, dass gelegentlich auch die alten Daten in einem neuen Full Backup nochmals hochgeladen werden müssen.

Restore hab ich auch schon gemacht. Aber bisher nur zu Testzwecken benötigt (toi toi toi). Ich habe alles wiederhergestellt und anschließend von einem Tool vergleichen lassen. War alles ok.


Noch ein paar Hinweise:
--accept-any-ssl-certificate ist ein dreckiger Workaround, da Mono die Zertifikate nicht kennt. Da wäre ein "mono mozroots.exe --import --sync" die bessere Lösung gewesen (aber man braucht mozroots.exe).

Bei den großen Backups bin ich mittlerweile auf deutlich größere Volumes umgestiegen. Duplicati lädt ja immer gesplittete Archive hoch (da einige Anbieter Größenbeschränkungen haben). Außerdem ist das nützlich bei instabilen Datenverbindungen, denn die bereits komplett hochgeladenen Archive sind bereits voll nutzbar. Aufgrund meines Uploads bin ich da auf --volsize=100MB gegangen. Bei Backups im lokalen Netz mache ich auch --volsize=200MB.
 

KNeuhaus

Benutzer
Mitglied seit
01. Okt 2012
Beiträge
30
Punkte für Reaktionen
0
Punkte
12
Hallo,

ich spiele auch gerade mit Duplicati rum, da es genau für meine Zwecke passt :verschlüsselte Archive, weitgehend unabhängig von einander und mit einer weit verbreiteten Verschlüsselungsmethode (AES), so daß ich notfalls bei einem Totalausfall KEINE spezielle Software brauche um die Daten wieder herzustellen.

Duplicati läuft bei mir auf der DS213+ und macht ein lokales Backup (innerhalb der NAS), welches dann später von einem Rsync Task auf's HiDrive geschoben werden soll.
Allerdings stoße ich gerade mit den Volumes auf ein Problem.
Das 1. Volume-File ist wie gewünscht z.b. 10 oder 30 MB groß (Paramter --volsize), alle weiteren von dem 60MB-TestBackup sind aber nur zwischen 1067 oder 1300 Bytes groß - Duplicati erzeugt dementsprechend hunderte von Volumes.

Strange, dieses Verhalten, konnte bisher auch durch debuglog oder generelles logging keine Fehler entdecken.

Duplicati läuft in der Version: 1.3.3.1462 mit Mono RT/JIT Compiler 2.11.1.

Jemand hier vielleicht dieses Problem schon gehabt oder eine Idee ???

Gruß Kai
 

trevorreznik

Gesperrt
Mitglied seit
24. Nov 2010
Beiträge
386
Punkte für Reaktionen
0
Punkte
0
Duplicati läuft in der Version: 1.3.3.1462 mit Mono RT/JIT Compiler 2.11.1.

Jemand hier vielleicht dieses Problem schon gehabt oder eine Idee ???

Es gab mal ein Zwischenversion vor 1.3.3 in der ein ähnliches Problem gefixt wurde. Zitat: "Fixed: Infinite number of empty volumes created if last file spans volumes (introduced in build 1348 by r1437)". Vielleicht hast du einen ähnlichen Fehler erwischt oder eine neue Variante, um den Fehler zu reproduzieren.

Kannst du den Fehler jedes Mal reproduzieren? Auch, wenn du das Backup von vorne beginnst (alles löschen und nochmal)?
 

KNeuhaus

Benutzer
Mitglied seit
01. Okt 2012
Beiträge
30
Punkte für Reaktionen
0
Punkte
12
Jep, immer wieder reproduzierbar (egal ob FULL weil noch kein Backup vorhanden bzw. gelöscht oder inkrementell), mal einige Settings weggelassen (logging, prefix, etc), dann auch mal volsize weggelassen, so daß er 10MB Volumes per default macht.
Die 1. ist ok, die anderen jedesmal nur einige Bytes groß.
Daß einzige was sich ändert, ist die Größe der folgenden Volumes (s. vorheriger Post).

Das scheint genau so, wie du beschrieben hast.

Ne Idee ?
 

amarthius

Super-Moderator
Teammitglied
Mitglied seit
03. Jun 2009
Beiträge
6.816
Punkte für Reaktionen
33
Punkte
174
Habe auch Probleme. Mein Testdateien liefen ohne Probleme. Jetzt wo ich wichtige Daten sichern will, gibts Probleme. Einmal ist das Backup einfach abgebrochen und bei einem neuen Versuch läuft es durch. Allerdings sind im Ziel keine Dateien.

edit: Bei erneutem ausführen des Befehls erkennt er ein inkrementelles Backup. Nur wo liegts ? :mad:

edit2: Warum auch immer liegt es im Duplicati-Ordner.. Obwohl ich als Ziel einen anderen definiert habe?

edit3: Schön wäre es, wenn man Duplicati mit einem Client konfigurieren könnte. So wie bei Crashplan.
 
Zuletzt bearbeitet:

amarthius

Super-Moderator
Teammitglied
Mitglied seit
03. Jun 2009
Beiträge
6.816
Punkte für Reaktionen
33
Punkte
174
mono Duplicati.CommandLine.exe backup /volume1/photo/2006aelter/ /volume1/backup/photo/2006aelter/ --full-if-more-than-n-incrementals=10 --tempdir=/volume1/backup/dup_temp --compression-level=0
Duplicati befindet sich unter /public/Duplicati. Der Temp-Ordner wurde korrekt benutzt. Nach dem Backup war nichts unter die Zielpfad zu finden. Alles lag unter
/public/Duplicati/1/backup/photo/2006aelter/
 

trevorreznik

Gesperrt
Mitglied seit
24. Nov 2010
Beiträge
386
Punkte für Reaktionen
0
Punkte
0
Duplicati befindet sich unter /public/Duplicati. Der Temp-Ordner wurde korrekt benutzt. Nach dem Backup war nichts unter die Zielpfad zu finden. Alles lag unter

Das Ziel muss als URI angegeben werden, ansonsten zickt der Parser und macht komische Sachen. Also muss es heißen: mono Duplicati.CommandLine.exe backup /volume1/photo/2006aelter/ file:///volume1/backup/photo/2006aelter/ --full-if-more-than-n-incrementals=10 --tempdir=/volume1/backup/dup_temp --compression-level=0

Empfehlen kann ich noch --volsize=200MB damit am Ziel nicht so viele Dateien erstellt werden. Die 10MB (default) machen nur Sinn bei langsamen Netzwerkverbindungen, die auch gerne mal abbrechen.

--sorted-filelist=true schaltet die zufällige Verwürfelung der Dateien aus. War gedacht, damit bei Fehlern nicht immer die gleichen Dateien im Backup fehlen. Ist den Aufwand/die Kosten aber nicht wert.

Wenn die Daten auf der Diskstation unverschlüsselt vorliegen und das auch im Backup so sein soll, macht --no-encryption Sinn und spart jede Menge CPU-Power.

Und zum Schluss kann man die Kopiererei auf den lokalen Platten noch optimieren. --disable-streaming-transfers und --use-move-for-put sorgen dafür, dass die temporären Dateien einfach verschoben werden (statt sie zum Ziel zu kopieren und im Quellverzeichnis dann zu löschen).
 
Zuletzt bearbeitet:

amarthius

Super-Moderator
Teammitglied
Mitglied seit
03. Jun 2009
Beiträge
6.816
Punkte für Reaktionen
33
Punkte
174
Danke für den Hinweis :)

Wollte es auch so wie KNeuhaus halten und die Daten lokal verschlüsseln lassen und danach auf einen Cloud-Hoster laden.

Aktuell hoffe ich ja auf Duplicati 2.0 wo sich wohl einiges ändern wird und es eine Möglichkeit gibt externe Instanzen per WebInterface zu konfigurieren.
 

trevorreznik

Gesperrt
Mitglied seit
24. Nov 2010
Beiträge
386
Punkte für Reaktionen
0
Punkte
0
Wollte es auch so wie KNeuhaus halten und die Daten lokal verschlüsseln lassen und danach auf einen Cloud-Hoster laden.

Genau dafür ist Duplicati auch gemacht worden. Ich hab 8Mbit Upload und finde --volsize=100MB eine gute Größe. Allerdings sind das schon Größen, die bei einigen Hostern zu Problemen führen. SkyDrive würde ich über 50MB nicht nutzen und das Mediencenter von t-online mag große Dateien momentan auch nicht so gerne; allerdings ist das ein bekannter Bug.


Aktuell hoffe ich ja auf Duplicati 2.0 wo sich wohl einiges ändern wird und es eine Möglichkeit gibt externe Instanzen per WebInterface zu konfigurieren.

Auf Duplicati 2.0 kannst du gerne hoffen, aber das wird wohl noch dauern. Der Hauptentwickler scheint momentan recht wenig Zeit zu haben :-(
 

amarthius

Super-Moderator
Teammitglied
Mitglied seit
03. Jun 2009
Beiträge
6.816
Punkte für Reaktionen
33
Punkte
174
So einen Upload hätte ich auch gerne.. Da sind Fullbackups auch kein Problem.

Das ist natürlich schade. Muss ich mich wohl mal paar Stunden hinsetzen und mir Skripte schreiben, wo ich bei einer GUI in 20 Minuten alles erledigt hätte =/
 

amarthius

Super-Moderator
Teammitglied
Mitglied seit
03. Jun 2009
Beiträge
6.816
Punkte für Reaktionen
33
Punkte
174
Werde nun wohl auf die integrierte Verschlüsselung umsteigen, da sie wohl genau das bietet was ich mir vorstelle.

- Gemeinsame Freigaben werden über "Sicherung & Wiederherstellung" in einem verschlüsselten Ordner kopiert.
- Dieser Ordner kann wiederum per "Sicherung & Wiederherstellung" auf das HiDrive oder Amazon S3 kopiert werden.

Vorteile:
- Nutzung der GUI ;)
- Dank Ordner/Dateibasierter Verschlüsselung wird nur das hochgeladen was geändert wurde (Kein Full-Upload nach 9 inkrementellen Sicherungen)
- Automatisches Fortführen nach 24h-Disconnect
- Alles kann mit einem Klick wiederhergestellt werden
Nachteile:
- keine Splittung der Daten in kleine Pakete
- "begrenzte" anzahl an Cloudhostern im Vergleich zu Duplicati
- keine Versionierung

Hoffe ich habe keine weiteren Nachteile übersehen.
-
 

nageniil

Benutzer
Mitglied seit
18. Aug 2009
Beiträge
208
Punkte für Reaktionen
4
Punkte
18
Habe mir nun auch Mono (Paket) und Duplicati installiert und diese Lösung läuft dank der Anleitung von trevorreznik auf Anhieb astrein!
Nun wollte ich eine kleine GUI dazu in php schreiben und scheitere an dem seltsamen Effekt:
eine php-Anweisung exec ("mono -V",$myArray) liefert mir eine schöne Auflistung der Mono-Version,
aber ein exec ("mono /opt/Duplicati/Duplicati.CommandLine.exe help",$myArray) liefert gar nix...
Berechtigungen im Duplicati-Ordner sind alle auf 777(admin,users), in mono auf 755(root,root).
Wenn ich per php (script liegt im /volume1/@appstore-Ordner) nicht auf Duplicati zugreifen kann, dann hätten sich meine Bemühungen leider erübrigt - oder hat jemand eine Idee dazu?
 

Synuser13j

Benutzer
Mitglied seit
12. Jul 2013
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich habe mir eine DS213j gekauft, in der Hoffnung dort Duplicati laufen lassen zu können.

Bisher habe ich immer mit Duplicati auf eine externe Festplatte gesichtert und die Dateien zusätzlich auf ein WebDAV Verzeichnis geladen.

Nun möchte ich diesen Prozess automatisieren:
1) Sicherung auf das NAS mittels Duplicati
2) Nächtlicher automatisierter Upload der wichtigsten Sicherungen auf ein WebDAV Verzeichnis

Nun habe ich aber das Problem, dass ich weder IPKG noch mono auf der DS213j installiert bekomme. Kann jemand helfen, wie dies funktioniert? Habe ich mir die falsche Diskstation gekauft? Noch bin ich innerhalb der Rückgabefrist und diese Funktionalität wäre mir sehr wichtig - deswegen habe ich das NAS gekauft.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hallo,
momentan gibt es keine Möglichkeit ipkg zu installieren. Wann ipkg verfügbar sein wird ist auch noch nicht bekannt. Wenn dieses für Dich wirklich wichtig ist mußt Du Dir ein anderes Modell aussuchen.

Gruß Götz
 

Synuser13j

Benutzer
Mitglied seit
12. Jul 2013
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo Götz,

mir würde die Gewissheit reichen, dass IPKG irgendwann (so in den nächsten Monaten) für die DS213j verfügbar sein wird. Kann man denn generell sagen, dass IPKG möglich sein wird, oder ist das ungewiss?

Ich hatte zwischen der DS213j und einer DS213+ geschwankt. Habe dann aber das j-Modell genommen, weil mein erstes NAS und ich nicht zu hoch einsteigen wollte.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hallo,
momentan kann Dir da wohl niemand Gewissheit geben.

Gruß Götz
 

Synuser13j

Benutzer
Mitglied seit
12. Jul 2013
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Ich habe meine DS213j letzte Woche an einen Bekannten verkauft, der nur einen einfachen Netzwerkspeicher braucht.

Nur würde ich zur DS213+ greifen, aber die kann offiziell kein Mono. Laut dem User "KNeuhaus" soll Duplicati aber dennoch auf der DS213+ laufen. Wie ist das möglich, bzw. wie bekommt man Mono auf die DS213+?

Bevor ich mir jetzt ein neues NAS kaufe, möchte ich gerne wissen dass das möglich ist, was ich damit machen will.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat