リモートホスト(ssh://)をソース/ターゲットとしてrsyncを実行するか、ローカルパスを使用してsshfs共有を介してディレクトリをマウントすると違いがありますか?
スイッチを使用しないと、セキュリティやコピー速度に違いがある可能性があるため、rsyncアーカイブモードとリモートホストパス(ssh)を使用してください。 sshfsマウントと同じで、ソースと宛先のみがあります(パスワードは変更されず、デフォルト値のみ)。
答え1
SSHFSは便利ですが、rsyncまたはより一般的な同期ツールでは正しく機能しません。
最大の問題は、SSHFSがrsyncのパフォーマンス最適化を大幅に殺すことです。特に中規模または大規模ファイルの場合、rsyncはファイルが変更されたことを検出すると、変更された部分のみが転送されるように、ファイルの両方の部分のチェックサムを計算します。これは、ネットワーク帯域幅がディスク帯域幅(通常の場合)よりはるかに小さい場合にのみ最適化されます。ただし、SSHFSでは、「ディスク」帯域幅は実際にはネットワーク帯域幅であるため、rsyncはコピーする項目を決定するためにファイル全体を読み取る必要があります。実際、ローカルコピーの場合(rsyncの場合は片側がSSHFSにある場合でも)、rsyncはファイル全体をコピーします。
SSHFSは、小さなファイルが多いとパフォーマンスが低下する可能性があります。 Rsyncは、少なくとも各ファイルのメタデータを確認して、ファイルが変更されたことを確認する必要があります。 SSHFSの場合、ファイルごとに1つのネットワークラウンドトリップが必要です。 SSH経由のrsyncを使用すると、両端が並列に動作し、一括で情報を送信できるため、はるかに高速です。
アクセス制限に関しては、SSHFSにはSFTPアクセスが必要ですが、rsyncにはシェルを介してコード(特にrsyncプログラム)を実行する機能が必要です。ユーザーにシェルアカウントがない場合、およびをsftp-server
含むいくつかのプログラムのみを許可する特別なシェルを持つアカウントを提供できますrsync
。バラよりSCPにタンピーが必要ですか?
新しいファイルをコピーするだけでファイル数がそれほど多くない場合は、意味のあるパフォーマンスの違いはありません。
SSHFSは、ファイルシステムがマウントされるとSSH接続を確立し、マウントが解除されるまで接続を維持します。 Rsyncは実行されるたびに新しい接続を確立しますが、次のものを使用できます。単一の基本接続での多重化機能とピギーバック毎回認証する必要がないようにします。
SSHFSはFUSEファイルシステムなので、既存のUnixメタデータとACLのみがサポートされています。 rsyncは拡張属性を送信できます(を使用する必要がありますrsync -aAX
。一般は-a
既存のUnixメタデータのみを保持することに注意してください)。
答え2
主な質問に答えるには:はい、違いがあります。セキュアチャネルを介してリモートファイルにアクセスし、SSHを介してrsyncを許可する既存の接続がある場合は、セキュアチャネルが確立されsshfs
ます。リモートrsyncインスタンスとの会話。
2番目の質問に答えるには:リモートシステムのrsyncは、同期する必要のないファイルを見つけるためのより多くのインテリジェンスを提供するため、すべてのインスタンスではなくても、ほとんどの場合、SSHを介したrsyncが高速です。ただし、主にファイルと並列に実行されるためです。 。この情報を収集するには、ローカルのrsyncを使用してください。
SSHパラメータ(キーの長さ、アルゴリズム)が同様に設定されていると仮定すると、両方の方法のセキュリティは同じです。ソースシステムとターゲットシステムのデフォルト値は、そのシステムの展開の組み合わせによって異なります。