server
同期を維持したい2台のコンピュータに巨大なモックディレクトリがあります。cluster
基本的なケースでは、ファイルはほとんど変更されませんが、シミュレーションが完了したら、大量のファイルがすぐに変更され、ファイルが閉じられるとすぐに同期したいと思います。
したがって、rsyncでcronjobを使用するのは理想的ではないと思います。 cronjobは固定間隔でrsyncを呼び出すので、おそらく大きすぎるか小さすぎるものを選択します。 rsyncは、私とシミュレーションタスクがファイルの変更を確認する必要がないので、rsyncを選択することです。宿題に近づく唯一の人。
だから私の考えはinotifyを使うことです(参照この問題)モックディレクトリの変更を検出するために繰り返し、それから変更されたファイルを保存するには、rsyncにフォークしてください。しかし、これがフォークが完了したときに閉じるファイルを誤ってスキップするかどうかはわかりません。(そしておそらく、あなたが同期したファイルを再同期するためにrsyncを呼び出すinotifyのために無限ループに陥る可能性があります...)したがって、そこであまりにも多くを試す前に質問を繰り返します。
両方のディレクトリを接続し、変更が発生したらすぐに同期するツールはありますか?
(デフォルトではこれはオフラインライブラリと同じです。)
答え1
確認する同期。
Lsyncdはローカルディレクトリツリーイベントモニタインタフェース(inotify)を監視します。数秒間イベントを集計して結合し、プロセスを作成して変更を同期します。デフォルトではこれはrsyncです。その結果、Lsyncdは比較的インストールが簡単で、新しいファイルシステムやブロックデバイスを必要とせず、ローカルファイルシステムのパフォーマンスに影響を与えない軽量ライブミラーリングソリューションです。
これは双方向ではありませんが、あなたの質問によると、あなたも必要ではないことがわかります。双方向同期が必要な場合調和inotifyサポートがないことを除いて、良い答えです。また確認してみてください。この問題。
双方向同期の3番目の特徴は、DRBD、メインラインカーネルに含まれるブロックレベルのリアルタイム同期システムです。残念ながら、ほぼ同期的なので、高速インターネット接続が必要です。