web-dev-qa-db-ja.com

圧縮および暗号化を保存するrsyncの代替手段はありますか?

適切なオフサイトバックアップ/ファイル同期ソリューションを探しています。ローカルクライアントとリモートサーバーの両方がLinuxを実行します。サーバー上のストレージスペースは限られており、クライアントとサーバー間の帯域幅は非常に限られています。

重複、Back In Time、DéjàDup、luckyBackup、rsnapshot、rdiff-backup、rsynccryptoを調べました。少なくとも私が正しく理解していれば、それらのどれも私が望むことをしていないようです。それらは、複数のバージョンを保存するか、毎回完全な再送信を行うか、暗号化がないか、圧縮がないかのいずれかです。 rsync/usecompress/encfsの組み合わせを試しましたが、fusecompressがファイルを破壊し続けます。スーパーユーザーとaskubuntuを検索したところ、ここで同様の質問が1つだけ見つかりました(rsyncのような暗号化されたバックアップを実行する方法は?)が、圧縮についての話も、適切な解決策もありません。

要件:

  • 単純なミラーリング、ファイルのコピーは1つだけ(限られたストレージスペース)
  • 前回の同期以降に変更されたファイルのみを更新します(帯域幅が制限されています)
  • 圧縮および暗号化されたファイルを保存する
  • 暗号化は、送信する前にクライアントで行う必要があります

基本的に、私が欲しいのはrsyncのように動作するものですが、圧縮および暗号化されたミラーファイルを保存します。そのようなものは存在しますか?

2
Alfred Rupp

サーバーがsshを実行している場合:

  1. リモートサイトをローカルにマウントする

    sshfs -o nonempty,sshfs_sync,compression=yes username@Host:/path/archives/ /mounted/encrypted/
    
  2. 暗号化されたシステムを作成してマウントします(ディレクトリを初めてマウントしようとすると、encfsは暗号化されたファイルシステムを作成します。通常のマウントと同じように機能します):

    encfs /mounted/encrypted /mounted/unencrypted 
    
  3. / Mounted/unencryptedにrsyncを使用する

  4. アンマウント暗号化

    fusermount -u /mounted/unencrypted
    
  5. 最終的にリモートリソースをアンマウントします

    umount /mounted/encrypted
    
3
jet

@アルフレッドラップ、

「ArecaBackup」をチェックしましたか?

私はそれがあなたが求めている/必要としているすべての法案を満たすと思います。

http://areca-backup.org/

1
Karl Wagner

クライアントにマテリアルの以前のスナップショットを保存しない限り、あなたが求めているのは論理的に不可能だと思います。そうすれば、サーバーを参照せずに差分を構築できます。

問題は、マテリアルがサーバーに暗号化されて保存されているが、暗号化キーがクライアントにのみ保持されている場合、クライアントがコピーを利用できるようにしていない限り、コンテンツをサーバーからクライアントに転送して差分を生成する必要があることです。この目的のために。 @jetの回答のスキームはこの問題に悩まされ、その場合、帯域幅はrsyncアルゴリズムによって支援されません。

クライアントでファイルスペースが制限されているとは言わないので、ローカルファイル領域に重複を実行して、結果のファイルをrsyncすることができますか?

また、encfsの暗号化の問題についても読むことをお勧めします。

0
mc0e