適切なオフサイト バックアップ/ファイル同期ソリューションを探しています。ローカル クライアントとリモート サーバーは両方とも Linux を実行しています。サーバー上のストレージ スペースは限られており、クライアントとサーバー間の帯域幅は非常に限られています。
duplicity、Back In Time、Déjà Dup、luckyBackup、rsnapshot、rdiff-backup、rsynccrypto を調べました。少なくとも私が正しく理解している限り、どれも私の希望どおりには動作しないようです。複数のバージョンを保存するか、毎回完全に再送信するか、暗号化または圧縮が不足しています。rsync/fusecompress/encfs の組み合わせを試しましたが、fusecompress はファイルを破壊し続けます。superuser と askubuntu を検索しましたが、ここで同様の質問が 1 つだけ見つかりました (rsync のような暗号化バックアップを実行する方法は?)。ただし、圧縮については触れられておらず、適切な解決策もありません。
要件:
- シンプルなミラーリング、ファイルのコピーは 1 つだけ (ストレージ スペースが限られている)
- 前回の同期以降に変更されたファイルのみを更新する(帯域幅が制限されます)
- ファイルを圧縮して暗号化して保存する
- 送信前にクライアント側で暗号化を行う必要がある
基本的に、私が欲しいのは、rsync のように動作するが、ミラーリングされたファイルを圧縮および暗号化して保存するものです。そのようなものは存在しますか?
答え1
サーバーが 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
答え2
@アルフレッド・ラップ、
「Areca Backup」を確認しましたか?
あなたが求めている/必要としているすべての要件を満たしていると思います。
2023年6月14日編集
古い投稿ですが、現在では OP の質問のすべての要件を満たす完璧な解決策があります。
プログラムはResticです。https://restic.net/
答え3
あなたが求めているのは、クライアントに素材の以前のスナップショットを保存し、サーバーを参照せずにそこに差分を構築しない限り、論理的に不可能だと思います。
問題は、素材がサーバー上で暗号化されて保存されているが、暗号化キーがクライアント上にのみ保持されている場合、クライアントがこの目的のためにコピーを保持していない限り、差分を生成するためにサーバーからクライアントにコンテンツを転送する必要があることです。@jet の回答のスキームではこの問題が発生し、その場合、rsync アルゴリズムによって帯域幅が改善されることはありません。
クライアント上でファイル スペースが制限されているとは言っていないので、ローカル ファイル領域に対して duplicity を実行し、結果のファイルを rsync するだけでよいのではないでしょうか。
encfs の暗号化の問題について読んでみるのも良いでしょう。