ある CentOS サーバーから別の CentOS サーバーにファイルを転送する必要があります。約 10 分ごとに 5 MB のファイルを転送します。暗号化は必要ありません。
ファイルを高速転送する簡単な方法は何ですか?
ftp よりも簡単なものはありますか?
ありがとう!
答え1
rsync
ftp や tftp を使用する前に rsync を使用します。
オプションが増え、(私の経験では)転送の信頼性も高まります。
答え2
ssh 経由の tar は問題ありませんが、netcat 経由の TCP 経由の tar は、オーバーヘッドが最も低くなります。これが 1 回限りの場合は、これを試してみてください。
受信機側:
nc -l -p 8989 | tar x
送信者について:
tar cf - /source-path | nc (receiving host ip address) 8989
これを定期的に行う場合は、おそらく rsync を使用するでしょう。
答え3
2 人が tar over ssh について言及していますが、その方法については述べていません。記録によると、基本的な手順は以下を実行することです。
tar cf - files... | ssh remotehost 'cd /destination && tar xvf -'
または、受信側から転送を開始する場合:
ssh remotehost 'cd /source && tar cf - files' | tar xvf -
Evan の netcat ソリューションと比べてこの方法の利点は、すべてを 1 台のコンピューターから開始できることです。2 回の netcat 呼び出しを調整する必要がありません。これを自動的に実行する必要がある場合は、パスフレーズなしで接続できるようにする ssh キーを設定し、そのキーをこれらの接続に使用できます。
ssh にはデータ ストリームを圧縮するための -C オプションがありますが、GNU tar の組み込みの圧縮機能を使用することもできます。
tar zcf - files... | ssh remotehost 'cd /destination && tar xzvf -'
rsync も別の選択肢ですが、受信側に既に存在するファイルを更新するのが得意です。相手側にまだ存在しないファイルを転送する場合、scp や tar/ssh よりも遅いことがわかりました。
答え4
scp/sshを経由する必要がある場合、私の実験では、現在デフォルトで有効になっている最も高速な暗号はRC4であることがわかりました。暗号は「-c アークフォー' を ssh/scp コマンドに追加します:
最初のコピーの場合:
scp -c arcfour -r foo/ desthost:/destdir
更新情報:
rsync -e 'ssh -c arcfour' -r foo/ desthost:/destdir