これらのツールの主な違いは、ファイルのコピー方法です。
scp
基本的には、ソースファイルを読み取り、宛先に書き込みます。ローカルまたはネットワークを介してプレーンリニアコピーを実行します。
rsync
また、ファイルをローカルまたはネットワーク経由でコピーします。ただし、特別なデルタ転送アルゴリズムといくつかの最適化を使用して、操作を大幅に高速化しています。呼び出しを検討してください。
rsync A host:B
rsync
AとBの両方のファイルサイズと変更タイムスタンプを確認し、一致する場合は以降の処理をスキップします。
宛先ファイルBがすでに存在する場合、デルタ転送アルゴリズムは、AとBの違いのみがネットワーク経由で送信されるようにします。
rsync
一時ファイルにデータを書き込みますT、および、宛先ファイルの置き換えBをとT使用している場合がありますプロセスへの更新を見て「アトミック」にするためにBを。
それらの間の別の違いは、呼び出しに関するものです。rsync
コマンドラインオプションが豊富にあり、ユーザーはその動作を微調整できます。複雑なフィルタールールをサポートし、バッチモード、デーモンモードなどで実行されscp
ます。スイッチはわずかです。
要約するscp
と、日常のタスクに使用します。インタラクティブシェルでたまに入力するコマンド。使い方は簡単で、その場合、rsync
最適化はあまり役に立ちません。
cron
ジョブなどの定期的なタスクには、を使用しますrsync
。前述のように、複数の呼び出しでは、すでに転送されたデータを利用して非常に高速に実行し、リソースを節約します。ネットワークを介して2つのディレクトリの同期を維持するための優れたツールです。
また、大きなファイルを扱う場合rsync
は、-P
オプションを使用してください。転送が中断された場合は、コマンドを再発行することにより、転送が停止したところから再開できます。Sid Kshatriyaの回答を参照してください。