適切なオフサイトバックアップ/ファイル同期ソリューションを探しています。ローカルクライアントとリモートサーバーの両方がLinuxを実行します。サーバー上のストレージスペースは限られており、クライアントとサーバー間の帯域幅は非常に限られています。
重複、Back In Time、DéjàDup、luckyBackup、rsnapshot、rdiff-backup、rsynccryptoを調べました。少なくとも私が正しく理解していれば、それらのどれも私が望むことをしていないようです。それらは、複数のバージョンを保存するか、毎回完全な再送信を行うか、暗号化がないか、圧縮がないかのいずれかです。 rsync/usecompress/encfsの組み合わせを試しましたが、fusecompressがファイルを破壊し続けます。スーパーユーザーとaskubuntuを検索したところ、ここで同様の質問が1つだけ見つかりました(rsyncのような暗号化されたバックアップを実行する方法は?)が、圧縮についての話も、適切な解決策もありません。
要件:
基本的に、私が欲しいのはrsyncのように動作するものですが、圧縮および暗号化されたミラーファイルを保存します。そのようなものは存在しますか?
サーバーがsshを実行している場合:
リモートサイトをローカルにマウントする
sshfs -o nonempty,sshfs_sync,compression=yes username@Host:/path/archives/ /mounted/encrypted/
暗号化されたシステムを作成してマウントします(ディレクトリを初めてマウントしようとすると、encfsは暗号化されたファイルシステムを作成します。通常のマウントと同じように機能します):
encfs /mounted/encrypted /mounted/unencrypted
/ Mounted/unencryptedにrsyncを使用する
アンマウント暗号化
fusermount -u /mounted/unencrypted
最終的にリモートリソースをアンマウントします
umount /mounted/encrypted
クライアントにマテリアルの以前のスナップショットを保存しない限り、あなたが求めているのは論理的に不可能だと思います。そうすれば、サーバーを参照せずに差分を構築できます。
問題は、マテリアルがサーバーに暗号化されて保存されているが、暗号化キーがクライアントにのみ保持されている場合、クライアントがコピーを利用できるようにしていない限り、コンテンツをサーバーからクライアントに転送して差分を生成する必要があることです。この目的のために。 @jetの回答のスキームはこの問題に悩まされ、その場合、帯域幅はrsyncアルゴリズムによって支援されません。
クライアントでファイルスペースが制限されているとは言わないので、ローカルファイル領域に重複を実行して、結果のファイルをrsyncすることができますか?
また、encfsの暗号化の問題についても読むことをお勧めします。