SSH経由で多くのファイルを含むフォルダーをコピーする最も速い方法


13

ssh経由でサーバー上のファイルを複製する最良の方法は何ですか?

私の場合:私はmagentoショップの複製について話している。(15000ファイル〜50MB)

cp -a source destination

何時間もかかっています...(私の場合、サーバーは2.4 Xeon、2GB RAMです)

回答:


18

一言: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

2
@Piskvorは、-z不要なオーバーヘッドを追加するため、ローカルコピーのオプションを省略したことに注意してください。私見、あなたは-z遅いネットワークリンクを介してrsyncを使用する場合にのみ使用する必要があります。100Base-Tを介して大量のデータをコピーする場合は、を使用しなくても問題ありません-z。高速ネットワーク接続では、圧縮を使用するとCPUがペグされ、他のプロセスが枯渇する可能性があります。
トムロジック

@tomlogic:良い点-つまり、-zLANコピーや1台のマシン内でのコピーには使用しないでください。-zインターネットを介したコピーの有無をテストします(多くのことに応じて、どちらか一方が高速になる場合があります)。
Piskvorは、建物の左

1
また、ファイルが既に圧縮されていることがわかっている場合は、圧縮する必要はありません。JPEGでいっぱいのフォルダーツリーを同期するなど、何も得られないためです。
改行

注:-e ssh現在、リモートホストのデフォルトであるため、オプションを明示的に渡す必要はありません。
Piskvorは、

3

別の言葉: scp

scp /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server

ワンショット取引には、scpが便利です。大量のファイルがある場合は、rsyncをお勧めします。接続が切断されると、rsyncは中断したところから再開できます。

rsyncには圧縮(-z)があることを知っていましたが、scpにも圧縮があることがわかりました(-C)。


まあ、IIRCは両方とも、少なくともネットワーク運用のためにSSHの圧縮アルゴリズムを使用しています。
Piskvorは、

0

セットアップでは、rsyncで十分でしょう...しかし、例として、多くの小さなファイルがある場合、最初に転送してからrsyncで転送するよりもファイルをtarする方が速いかもしれません。これは、ファイルが小さい場合、所有者、タイムスタンプ、アクセス許可の転送がファイル自体よりも重いためです。Tarはすべての情報を1つのファイルにマージし、rsyncはより大きなブロックをコピーします。

さらに良いことに、セキュリティが必要ない場合は、tarとncを使用します。

宛先で、受信デーモンを準備し、圧縮解除および解凍します。

nc -l -p 12345 | pigz -d | tar xvf - 

ソースで、すべてをtarし、パラレル圧縮して宛先に送信します。

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