scp
の代わりにrsync
を使用する理由はありますか? scp
を使用する理由は二度とわかりません。rsync
はscp
が行うすべてのことをより安全に実行します(シンボリックリンクなどを保持できます)。
scpは、セキュアなSSH接続を介して1つのマシンからリモートマシンにファイルをコピーするためのcpのような方法を提供します。
rsyncを使用すると、リモートフォルダーを同期できます。
それらは異なるプログラムであり、どちらにも用途があります。 scpは常に安全ですが、rsyncは安全のためにSSHを経由する必要があります。
主なものの1つ(誰も言及していないと思います)は、大量のデータまたはファイルを転送している場合、何らかの理由で転送が完了前に切断された場合、rsyncは中断したところからそれを取得します。 scpはしませんが。
1つまたは2つのファイルまたはディレクトリを転送する場合は、scpを使用します。マルチGBサイズのデータをrsyncで取得します。
rsync:転送deltas(その を使用)デルタ転送アルゴリズム ):
scp:転送ファイル全体:
概要:scp
は2つのリモートホスト間でファイルを転送できますが、rsync
はサポートしていません。
WebhostingトークのユーザーChris 書き込み:
rsync
は両端のファイルを比較し、変更されたファイルの変更された部分のみを転送します。初めてファイルを転送するときは、scp
とほとんど同じように動作しますが、2番目の転送では、ほとんどのファイルは変更されず、scp
よりもはるかに少ないデータがプッシュされます。これは、失敗した転送を再開するための便利な方法でもあります。同じコマンドを再発行すると、以前に中断したところから再開されますが、scp
は最初からやり直します。
scp
の方が引数が少ないため、使用が簡単です。単一のファイルのみを転送する場合は、rsync
ではなくscpを使用しています。おそらく、私はrsyncのエイリアスを定義するのが面倒です... ;-)
https://Gist.github.com/KartikTalwar/4393116 の@tomruniaへのクレジット
rsync -aHAXxv --numeric-ids --delete --progress \
-e "ssh -T -c [email protected] -o Compression=no -x" \
[source_directory] user@hostname:[target_directory]/
注意を払う --delete
、無関係なファイルを宛先ディレクトリに保持したい場合は使用しないでください