[解決済み】`scp`と`rsync`はどう違うのですか?
質問
に関する記事
ゴーストブログの設定
を使用するようにと書かれています。
scp
を使用して、ローカルマシンからリモートサーバーにコピーしています。
scp -r ghost-0.3 root@*your-server-ip*:~/
しかし
Railscast 339: シェフソロの基本
用途
scp
を使うと、反対方向(リモートサーバーからローカルマシンへ)にコピーすることができます。
scp -r [email protected]:/var/chef .
同じRailscastで、筆者がリモート・サーバーにファイルをコピーしたいとき(最初の例と同じ方向)、次のように使う。
rsync
:
rsync -r . [email protected]:/var/chef
なぜ
rsync
コマンドを使用します。
scp
は両方向にコピーされるのでしょうか?どのように
scp
とは異なり
rsync
?
解決方法は?
これらのツールの大きな違いは、ファイルのコピー方法です。
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の
回答
.
最後に、以下の点に注意してください。
rsync://
の場合、プロトコルはプレーンなHTTPと同様で、暗号化されておらず、完全性チェックもありません。常に
rsync
は SSH 経由で (上記の質問の例のように)、rsync プロトコルは使わないでください。
scp
は常に、完全性と機密性の両方が保証された転送メカニズムとしてSSHを使用しますので、この点も2つのユーティリティの違いです。
関連
-
[解決済み】rsync エラー: "/foo/bar" で時間の設定に失敗しました。操作は許可されていません。
-
[解決済み] scpを使ってリモートからローカルにフォルダをコピーするにはどうしたらいいですか?
-
[解決済み] rsyncを使用してリモートサーバーからローカルマシンへファイルをコピーする
-
[解決済み] scpにパスワードを渡すには?
-
[解決済み】ポート番号を指定したscp
-
[解決済み】`scp`と`rsync`はどう違うのですか?
-
[解決済み] Rsyncはディレクトリの内容をコピーするが、ディレクトリ自体はコピーしない
-
[解決済み] サーバーにターゲットディレクトリを作成するように設定するにはどうしたらいいですか?
-
[解決済み] rsync: -size-onlyと--ignore-timesの違い。
-
[解決済み] 特定のファイルのリストだけをrsyncする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン