低速または不安定なネットワークリンクを介した信頼性の高いファイル転送


8

低品質のブロードバンドリンクを介して多数のファイルをサーバーに転送する必要があります。ファイルはサイズが大きく、ファイルごとの転送には約30分かかります。

私はscpを使用していますが、ハングすることがあります-転送はエラーで失敗せず、実行を続けますが、それ以上のデータは転送されません。

そこで、「フェイルセーフ」アップロードソリューションを探しています。これは、リンクが数分間失敗した場合や、信頼性が低い場合でも機能するソリューションです。

私の考えは:

  1. 大きなファイルを小さな部分に分割する
  2. タイムアウト付きでパーツをアップロードし、失敗した場合は再試行します

質問:

  • このアイデアを実装するすぐに実行できるツールはありますか?(scpの特定の必要性はありません。ftpやその他の可能性があります)
  • scpがハングしたことを検出する方法はありますか?(つまり、まだ実行中ですが、データは転送されません)

回答:


15

rsyncを使用して、あるコンピューターから別のコンピューターにファイルをコピーできます。rsyncは、基礎となるトランスポートとしてsshを使用できます。このrsync --partialようなスクリプトと組み合わせて、ネットワーク障害が発生した場合に再試行します。ネットワークエラーが発生した場合でもファイルを移動できるはずです。

これを行う別の方法は、を使用してローカルファイルシステムにリモートファイルシステムをマウントし、ファイルをsshfs -o reconnectcpすることです。残りはsshfs / Linuxが処理します。今日行ったいくつかのテストに基づいて、これはrsyncよりもはるかに遅いようです。

最後に、2つのマシン間にVPNを設定できます。これはほとんどの作業を含み、上記のソリューションのいずれかははるかに簡単ですが、不安定なネットワーク接続の問題を解決します。また、一部の人々が指摘したように、これも不安定な場合があります。それはでき OpenVPNのですが、上記の解決策がはるかに優れているとして、VPNは、接続を再確立について非常に積極的である場合に動作します。


1
これを機能させるには、--partialフラグ(またはの--partialような意味を持つもの--inplace)を使用する必要があります。そうしないと、転送が中断されるたびに、部分的な転送が削除され、再度開始する必要があります。
ウォンブル

Rsyncは間違いなく次の方法です...またはWindows用のrobocopy。
ブライアンアドキンス

VPNは不安定な接続をどの程度正確に支援しますか?
EEAA 2012

VPNソフトウェア(OpenVPNなど)は、VPNで実行されているアプリケーションに透過的に、バックグラウンドで自動的に再接続できます。
マイケルハンプトン

@ErikA私の考え-フレークリンク上のVPN =常に再起動する必要のあるフレークVPN これは、トランスポートソフトウェアが中断された場所でファイル転送を正確に再開できる必要があるという問題に2番目のレベルを追加するだけです。
Fiasco Labs、2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.