についての記事Ghostブログの設定scp
ローカルマシンからリモートサーバーにコピーするには次のように使用します:
scp -r ghost-0.3 root@*your-server-ip*:~/
しかし、Railscast 339: Chef Solo の基礎scp
反対方向(リモート サーバーからローカル マシンへ)にコピーする場合に使用します。
scp -r [email protected]:/var/chef .
同じ Railscast で、著者がファイルをリモート サーバーにコピーする場合 (最初の例と同じ方向)、次を使用しますrsync
。
rsync -r . [email protected]:/var/chef
両方向にコピーするrsync
場合、なぜ コマンドを使用するのですか?とどう違うのですか?scp
scp
rsync
ベストアンサー1
これらのツールの主な違いは、ファイルのコピー方法です。
scp
基本的に、ソース ファイルを読み取り、宛先に書き込みます。ローカルまたはネットワーク経由で、単純な線形コピーを実行します。
rsync
ローカルまたはネットワーク経由でファイルをコピーすることもできますが、特別なデルタ転送アルゴリズム操作を大幅に高速化するためのいくつかの最適化。呼び出しを検討してください。
rsync A host:B
rsync
AとBの両方のファイル サイズと変更タイムスタンプをチェックし、一致する場合はそれ以上の処理をスキップします。宛先ファイルBがすでに存在する場合、デルタ転送アルゴリズムにより、AとBの差分のみがネットワーク経由で送信されます。
rsync
一時ファイルTにデータを書き込み、宛先ファイルBをTに置き換えて、 Bを使用している可能性のあるプロセスに対して更新が「アトミック」に見えるようにします。
それらのもう 1 つの違いは、呼び出しに関するものです。rsync
には多数のコマンド ライン オプションがあり、ユーザーは動作を微調整できます。 複雑なフィルター ルールをサポートし、バッチ モード、デーモン モードなどで実行されますscp
。 スイッチはわずかしかありません。
要約すると、scp
日常的なタスクに使用します。対話型シェルで時々入力するコマンドです。使い方が簡単なので、このような場合にはrsync
最適化はあまり役に立ちません。
cron
ジョブなどの繰り返しタスクの場合はを使用しますrsync
。前述のように、複数回の呼び出しではすでに転送済みのデータを利用するため、非常に高速に実行され、リソースを節約できます。これは、ネットワーク上で 2 つのディレクトリを同期させるのに最適なツールです。
また、大きなファイルを扱う場合は、オプションrsync
と一緒に使用してください-P
。転送が中断された場合、コマンドを再発行することで停止したところから再開できます。Sid Kshatriya の答え。
最後に、rsync://
このプロトコルはプレーン HTTP に似ていることに注意してください。つまり、暗号化されておらず、整合性チェックも行われません。rsync
本当に何をしているのかわかっているのでなければ、必ず rsync プロトコルではなく、必ず SSH 経由で使用してください (上記の質問の例のように)。 は、scp
整合性と機密性の両方を保証する基盤となるトランスポート メカニズムとして SSH を常に使用します。これが 2 つのユーティリティのもう 1 つの違いです。