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