回答:
一言:rsync
。
低速リンクを使用している場合、またはサーバーの負荷が高い場合は、コピーに使用されるツールがボトルネックにならず、コピーの方法はいずれにせよ遅くなることに注意してください。
これにより、ローカルコンピューターとリモートサーバー間でコピーするための基本的な使用方法がわかります。http://oreilly.com/pub/h/38
ローカルコンピューターからリモートサーバーにコピーするには(もちろん、パス、ユーザー名、ホストアドレスを置き換える必要があります):
rsync -avz -e ssh /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
-a
アーカイブ-v
冗長-z
圧縮する-e ssh
「SSHトンネルを使用する」反対方向にコピーするには、パスを切り替えます(最初はfrom、2番目はto):
rsync -avz -e ssh remoteuser@remotehost.somewhere.example.com:/path/on/server /path/on/local/computer
しかし、rsyncは同じサーバー上で物事をコピーする場合でも便利です。
rsync -av /path-to/copy/from /path_to/copy/to
-z
LANコピーや1台のマシン内でのコピーには使用しないでください。-z
インターネットを介したコピーの有無をテストします(多くのことに応じて、どちらか一方が高速になる場合があります)。
-e ssh
現在、リモートホストのデフォルトであるため、オプションを明示的に渡す必要はありません。
別の言葉: scp
scp /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
ワンショット取引には、scpが便利です。大量のファイルがある場合は、rsyncをお勧めします。接続が切断されると、rsyncは中断したところから再開できます。
rsyncには圧縮(-z
)があることを知っていましたが、scpにも圧縮があることがわかりました(-C
)。
セットアップでは、rsyncで十分でしょう...しかし、例として、多くの小さなファイルがある場合、最初に転送してからrsyncで転送するよりもファイルをtarする方が速いかもしれません。これは、ファイルが小さい場合、所有者、タイムスタンプ、アクセス許可の転送がファイル自体よりも重いためです。Tarはすべての情報を1つのファイルにマージし、rsyncはより大きなブロックをコピーします。
さらに良いことに、セキュリティが必要ない場合は、tarとncを使用します。
宛先で、受信デーモンを準備し、圧縮解除および解凍します。
nc -l -p 12345 | pigz -d | tar xvf -
ソースで、すべてをtarし、パラレル圧縮して宛先に送信します。
tar cvf - ./ | pigz | nc host 12345
-z
不要なオーバーヘッドを追加するため、ローカルコピーのオプションを省略したことに注意してください。私見、あなたは-z
遅いネットワークリンクを介してrsyncを使用する場合にのみ使用する必要があります。100Base-Tを介して大量のデータをコピーする場合は、を使用しなくても問題ありません-z
。高速ネットワーク接続では、圧縮を使用するとCPUがペグされ、他のプロセスが枯渇する可能性があります。