cpまたはrsync、cpは本当に価値がありますか?


8

私は私が使用するための良い理由を見つけるように見えることはできません、これは、本当の答えずに質問としてカウントされません願うcp(1)以上rsync(1)、事実上すべての状況では。1は、一般的に賛成すべきであるrsyncオーバーcp?それらを使用するための良いガイドラインはありますか?

  • rsync:差分を転送します。圧縮を使用できます。リモートで(安全に)使用できます。単一の大きなファイルの転送中でも、中断されても再開できます。」

  • cp:多分それは単に使用する方が簡単ですか?rsyncより高速ですか?


4
比較のオーバーヘッドは、単にバイトを盲目的にコピーするよりもはるかに多くの場合があります。
12

良い答えと同じ質問:serverfault.com/questions/43014/...
ダニエル・

回答:


9

cpcoreutilsの一部であるため、どこにでも存在します。さらに、主に1台のコンピューター内でファイルをコピーするように設計されました。

rsyncはcoreutilsの一部ではなく、デフォルト環境にも存在しません。さらに、主にネットワーク経由でファイルを転送するように設計されました。またrsync、coreutilsに比べて依存関係が多いですが、この違いはあまり意味がありません。

PS:ちなみに、組み込みシステムではまだCPU使用率が問題です。


6

rsyncすべてのコピー操作で使用したくない主な理由rsyncは、計算オーバーヘッドがあるためです。データ転送が実際に開始する前に、rsyncすべてのファイルをスキャンします。次に、各ファイルの前に、比較が行われます。このオーバーヘッドは取るに足らないものではありません。2012年に利用できる高速のCPUがあっても、このタイプの転送は常に行います。かなりまともなサイズのサーバーでは、ギグのデータの処理を開始すると、オーバーヘッドに時間がかかる可能性があります。

転送時間を節約できる場合はrsync、使用しないでください。使用しないでrsyncください。同じことを達成できるrsync場合は使用しないでくださいcp

私が通常行うことは、まず通常のコピー方法を使用してデータを持ち込みます。次にrsync、後続の変更について、それらの差分を利用できるようになります。


私たちのプロセッサが今日どれほど強力であるかを考えると、支払うのは高額ですか?
ソユーズ

3
大きいとは主観的なものであり、ファイル数とデータサイズとIOによって異なります。私の主なポイントは、今日のプロセッサに関係なく、重要ではないということです。今日のプロセッサを覚えておくべきことの1つは、今日のデータを処理する必要があることです。
JMベッカー

同意した。CPUは、真空では速くなりません。GHz CPUの最大の理由の1つは、ギガビットネットワーキングです。遅いCPUは、I / Oパイプをそれほどいっぱいに保つことができないだけです。コンピューターは、その作り方を知っているほどバランスが取れている傾向があります。一部のCPUパワーを奪い、I / O容量の一部がアイドル状態になります。I / O要求を増やすと、CPUはアイドル状態になり、I / Oを待機します。
ウォーレンヤング

3

ローカルでコピーする場合は、差分を使用しないため、CPUのcp使用量が少ないと予想します、差分を使用すると書き込みを減らすことができます。とにかくファイル/差分全体を読み書きする必要があり、追加の計算が必要になるため、ローカルでの圧縮は避けてください。rsync


つまり、すべてはCPUコストまたはI / Oコストに
ソユーズ

2
@soyuz、それは他のデータを参照して、変更されたデータに当てはまります。差分が小さいほど、rsync優先されます。しかし、彼らが違いがないときは、rsync余分な利益なしにオーバーヘッドをもたらすだけです。
JMベッカー

@TechZilla共通点がないときのことだと思います。差分がない場合、コピーするものが何もないため、rsyncは早期に終了し、はるかに優先されます。
イズカタ2012

@Izkata:rsyncブラインドと比較して、2つの同一ファイルのI / Oオーバーヘッドを2倍にする方法は少なくとも1つありますcp。変更時間を変更します。あなたは--size-onlyこれを修正するために与える必要があるでしょう。私がこれを回避できる唯一の他の方法はrsync、ファイルシステムのチェックサムに依存することですが、ほとんどのファイルシステムでは、IDの統計的予測にはあまり適していません。
ウォーレンヤング

3

大きなまたは存在しないdiffの場合のオーバーヘッドとはまったく異なりrsync、に相当するようには見えません。これはcp --reflink=always、それをサポートするファイルシステム内でコピーする場合、膨大な量のデータを節約できます(コピーオンライトコピーを作成するため、オリジナルとコピーの間で共通のデータ(もちろん、最初はすべてすべて)は1回だけ保存されます)。 rsyncただし、を使用してCoWコピーを更新する方が優れてい--inplaceます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.