是否有 rsync 替代方案,可以儲存壓縮和加密的內容?

是否有 rsync 替代方案,可以儲存壓縮和加密的內容?

我正在尋找合適的異地備份/文件同步解決方案。本機客戶端和遠端伺服器都運行linux。伺服器上的儲存空間是有限的,客戶端和伺服器之間的頻寬也非常有限。

我查看了 duplicity、Back In Time、Déjà Dup、luckyBackup、rsnapshot、rdiff-backup、rsynccrypto。這些似乎都沒有達到我想要的效果,至少如果我理解正確的話。它們要么存儲多個版本,要么每次都進行完整的重傳,要么缺乏加密,要么缺乏壓縮。我嘗試了 rsync/fusecompress/encfs 組合,但fusecompress 不斷破壞我的檔案。我搜尋了superuser和askubuntu,在這裡只發現了一個類似的問題(How to do rsync-like crypto backup?),但沒有談論壓縮,也沒有合適的解決方案。

要求:

  • 簡單鏡像,檔案只有一份(儲存空間有限)
  • 僅更新自上次同步以來更改的檔案(頻寬有限)
  • 儲存壓縮和加密的文件
  • 傳輸前應在客戶端進行加密

基本上,我想要的是行為類似於 rsync 的東西,但儲存壓縮和加密的鏡像檔案。存在這樣的東西嗎?

答案1

如果伺服器正在執行 ssh:

  1. 在本地掛載遠端站點

    sshfs -o nonempty,sshfs_sync,compression=yes username@host:/path/archives/ /mounted/encrypted/
    
  2. 建立加密系統並掛載它(第一次嘗試掛載目錄時,encfs 將建立加密檔案系統。它的工作方式與常規掛載類似):

    encfs /mounted/encrypted /mounted/unencrypted 
    
  3. 使用 rsync 到 /mounted/unencrypted

  4. 解除安裝加密

    fusermount -u /mounted/unencrypted
    
  5. 最終卸載遠端資源

    umount /mounted/encrypted
    

答案2

@阿爾弗雷德·魯普,

您檢查過「檳榔備份」嗎?

我認為它滿足了您所要求/需要的一切。

http://areca-backup.org/

2023 年 6 月 14 日編輯

舊帖子,但現在有一個完美的解決方案,可以滿足OP問題的所有要求。

該程式是 Restic。https://restic.net/

答案3

我認為您所要求的在邏輯上是不可能的,除非您在客戶端上儲存材料的早期快照,以便可以在不引用伺服器的情況下建立差異。

問題是,如果材料以加密方式儲存在伺服器上,但加密金鑰僅保存在客戶端上,那麼您必須將內容從伺服器傳輸到客戶端以產生差異,除非客戶端保留可用的副本以此目的。 @jet 的答案中的方案將受到這個問題的困擾,在這種情況下,rsync 演算法不會對頻寬有所幫助。

您沒有說文件空間在客戶端上受到限制,所以也許您可以只對本地文件區域運行口是心非並 rsync 生成的文件?

您可能還想了解 encfs 的加密問題。

相關內容