2台のLinux(Debian)マシン「A」と「B」がルーターを介してワイヤレスで相互に接続されています。
マシン「A」で、5秒ごとに特定のフォルダー(例:〜/ files /)に新しい1MBファイルを生成するスクリプトを実行します。ファイルは生成後に変更されません。
ファイルが生成されると、以前に生成された他のファイルと一緒にマシン「B」で使用できるようになります。
それを行うための最も効率的な方法は何ですか(CPU /ネットワークの使用状況と転送時間による)?
提案:
スクリプトでscp
を実行して、生成後にファイルをコピーすると、すべてのファイルが個別にコピーされます。
rsync
を実行して、マシン間でフォルダの内容を同期します。
rsync
を使用します。 SCPのオーバーヘッドは大きくなります。
ControlMaster
を使用して接続を共有することも考えてください。このファイルのみを5秒ごとに転送する場合、ほとんどの場合、ファイルを転送する代わりに接続の開始に費やします。
Rsyncを使用し、
Rsycは、最後のコピー以降に変更されたファイルのみをコピーし、多くの帯域幅とCPUを節約します。
SCPは、変更されたファイルのみをコピーするのは非常にトリッキーであり、デフォルトでは、毎回フォルダー全体をコピーします。
たとえば、NFS
または別の共有プロトコルを使用して、これら2台のマシン間で共有フォルダーを作成することもできます。