Gibt es eine Alternative zu rsync, die komprimiert und verschlüsselt speichert?

Gibt es eine Alternative zu rsync, die komprimiert und verschlüsselt speichert?

Ich suche nach einer geeigneten Offsite-Backup-/Dateisynchronisierungslösung. Sowohl der lokale Client als auch der Remote-Server laufen unter Linux. Der Speicherplatz auf dem Server ist begrenzt, die Bandbreite zwischen Client und Server ist sehr begrenzt.

Ich habe mir duplicity, Back In Time, Déjà Dup, luckyBackup, rsnapshot, rdiff-backup und rsynccrypto angesehen. Keines davon scheint das zu tun, was ich will, zumindest wenn ich sie richtig verstehe. Sie speichern entweder mehrere Versionen oder führen jedes Mal eine vollständige Neuübertragung durch oder verfügen über keine Verschlüsselung oder Komprimierung. Ich habe eine Kombination aus rsync/fusecompress/encfs ausprobiert, aber fusecompress zerstört ständig meine Dateien. Ich habe Superuser und Askubuntu durchsucht und hier nur eine ähnliche Frage gefunden (Wie erstelle ich ein rsync-ähnliches verschlüsseltes Backup?), aber von Komprimierung ist dort nicht die Rede und es gibt auch keine passende Lösung.

Anforderungen:

  • einfache Spiegelung, nur eine Kopie der Dateien (begrenzter Speicherplatz)
  • nur die Dateien aktualisieren, die sich seit der letzten Synchronisierung geändert haben (begrenzte Bandbreite)
  • Dateien komprimiert und verschlüsselt speichern
  • Die Verschlüsselung sollte auf dem Client erfolgen, bevor die Daten übertragen werden.

Im Grunde möchte ich etwas, das sich wie rsync verhält, die gespiegelten Dateien aber komprimiert und verschlüsselt speichert. Gibt es so etwas?

Antwort1

Wenn auf dem Server SSH ausgeführt wird:

  1. Mounten Sie die Remote-Site lokal mit

    sshfs -o nonempty,sshfs_sync,compression=yes username@host:/path/archives/ /mounted/encrypted/
    
  2. Erstellen Sie das verschlüsselte System und mounten Sie es (Wenn Sie das Verzeichnis zum ersten Mal mounten, erstellt encfs das verschlüsselte Dateisystem. Es funktioniert wie das normale Mounten):

    encfs /mounted/encrypted /mounted/unencrypted 
    
  3. verwenden Sie rsync für /mounted/unencrypted

  4. Verschlüsselung aufheben

    fusermount -u /mounted/unencrypted
    
  5. Deaktivieren Sie ggf. die Remoteressource

    umount /mounted/encrypted
    

Antwort2

@Alfred Rupp,

Haben Sie „Areca Backup“ überprüft?

Ich denke, es erfüllt alle Ihre Anforderungen/Bedürfnisse.

http://areca-backup.org/

EDIT am 14. Juni 2023

Alter Beitrag, aber es gibt jetzt eine perfekte Lösung, die alle Anforderungen der OP-Fragen erfüllt.

Das Programm ist Restic.https://restic.net/

Antwort3

Ich glaube, dass Ihre Forderung logisch unmöglich ist, es sei denn, Sie speichern einen früheren Snapshot des Materials auf dem Client, sodass die Unterschiede dort ohne Bezugnahme auf den Server erstellt werden können.

Das Problem besteht darin, dass, wenn das Material verschlüsselt auf dem Server gespeichert ist, der Verschlüsselungsschlüssel jedoch nur auf dem Client gespeichert ist, Sie den Inhalt vom Server auf den Client übertragen müssen, um den Diff zu erstellen, es sei denn, der Client hat zu diesem Zweck eine Kopie bereitgestellt. Das Schema in der Antwort von @jet wird unter diesem Problem leiden, und die Bandbreite wird in diesem Fall durch den rsync-Algorithmus nicht verbessert.

Sie sagen nicht, dass der Dateispeicherplatz auf dem Client eingeschränkt ist. Vielleicht können Sie „Duplicity“ also einfach in einem lokalen Dateibereich ausführen und die resultierenden Dateien per rsync synchronisieren?

Möglicherweise möchten Sie sich auch über die kryptografischen Probleme mit ENCFs informieren.

verwandte Informationen