web-dev-qa-db-ja.com

LinuxPCで2つのディレクトリを同期します

4台のPC間でディレクトリの同期を維持できる分散ファイルシステム(または同期ツール)が必要です。

私の要件は次のとおりです。

  • オフラインアクセス(データは各PCでオフラインで利用可能である必要があります)
  • 実行権を保持する:一部のファイルは、Linuxパーティションで実行可能とマークされています。このフラグは複製する必要があります。
  • 効率的な同期戦略:私のファイルのいくつかは20GBで、頻繁に変更されますが、ほとんど部分がありません(Virtualboxイメージ)。デルタ送信は大歓迎です。
  • スペースの効率的な処理:ファイルの履歴はありません。「壊れた場合に備えて」ファイルを一時ディレクトリにコピーしないでください。
  • ファイルの削除を伝播する必要があります
  • 変更は4つのPCのいずれかで発生する可能性があり、他のPCが接続されているときに伝播する必要があります。
  • ソリューションはフォールトトレラントである必要があります。ほとんどの場合、4台のPCが切断されているか、同期できません。

私のソリューションの他の仕様は次のとおりです。

  • 同期はLANを超えており、同期されるデータの総量は約180GBで、約1万ファイルです。変更は小さいですが、大きなファイルで発生する可能性があります。
  • 現時点では、Linuxのみのソリューションに興味があります。
  • 単純なマージ戦略:競合が発生しないか、「最後の1つが勝つ」で解決されます

良い解決策は見つかりませんでした。私は試してきました:

  • unison:現時点で機能しているのはこれだけですが、多くのカスタム構成(実行をチェーンするcronスクリプト)を実行する必要がありました。変更を検出するためにPCが何分間もハングし、ディスクライトが点灯します。
  • Sparkleshareは大きなファイルをうまく処理しません。それは無期限に成長するすべての変更の履歴を保持します。彼らはそれが 次のリリース で修正されることを約束します、しかし現時点ではそれはまだ私のニーズに合いません。
  • Owncloudは大きなファイルをうまく処理せず、コピーのパフォーマンスが低く、変更した各ファイルの履歴を保持します(無効にすることができます)。
  • コーダ? (助けて!正しく設定できませんでした!)
  • git-annex Assistant すべてのファイルをシンボリックリンクに変換し、元のファイルを読み取り専用としてマークします(「変更中に間違えた場合に備えて」!)。ファイルを編集する前に、ファイルのローカルコピーを作成する特別なコマンド「git-annexunlock」を発行する必要があります。同期する場合は、ファイルを再度ロックすることを忘れないでください。 180Gbのファイルを取り戻す前に、マニュアルを勉強する必要がありました。私のPCでは二度と!

次に何を試してみますか?

5
Gab

私は古いスレッドを壊しているように見えますが、うまくいけば、これは将来誰かを助けるでしょう。

BTsyncはおそらくあなたにとって完璧なオプションです。プライベートスウォームとトラッカーを使用して同期共有を作成します。これは非常にフォールトトレラントであり、完全なファイル同期ではなく、データのブロックを適切に処理します。

BitTorrent Sync

1
BryanC