web-dev-qa-db-ja.com

LinuxからWindowsにSSH経由で非常に大きなファイルをインテリジェントにまたは部分的にダウンロードすることは可能ですか?

リモートのLinuxUbuntuサーバーに最大35GBのファイルがあります。ローカルでは、Windows XPを実行しているので、SSHを使用してリモートLinuxサーバーに接続しています(具体的には、SSH Secure Shell Clientバージョン3.3.2というWindowsプログラムを使用しています)。

私のブロードバンドインターネット接続は非常に良好ですが、大きなファイルのダウンロードはしばしばConnection Lostエラーメッセージで失敗します。よくわかりませんが、インターネット接続が数時間おきに1、2秒切れてしまうので失敗すると思います。ファイルが非常に大きいため、ダウンロードには4.5〜5時間かかる場合があり、その間、インターネット接続が1〜2秒停止する可能性があります。これは、同じインターネット接続と同じSSHソフトウェアを同じコンピューターに使用して、このサイズのファイルを正常にダウンロードしたためだと思います。言い換えれば、時々私は幸運に恵まれ、インターネット接続が一瞬落ちる前にダウンロードが終了します。

インテリジェントな方法でファイルをダウンロードできる方法はありますか?オペレーティングシステムまたはソフトウェアは、ファイルが中断した場所を「認識」し、インターネット接続が切断された場合に最後のポイントから再開できますか?

おそらく、ファイルをセクションごとにダウンロードすることは可能ですか?ファイルを複数のファイルに簡単に分割できるかどうかはわかりませんが、ファイルはバイナリであり、人間が読める形式ではないため、これは非常に難しいと思います。

現在のように、接続が切断される前に〜35 GBのファイルのダウンロード全体が完了しない場合は、ダウンロードを最初からやり直して、これまでにローカルにダウンロードされた〜5〜20GBのチャンクを上書きする必要があります。

何かアドバイスはありますか?ありがとう。

4
Andrew

WindowsのCygwinでrsync --partialを使用しました。それは素晴らしい働きをします。

1
Andrew

古き良きWinSCPを使うのは賢い(そして簡単)と思います

http://winscp.net/eng/docs/resume

2
Thiago Macedo

私の「適切な」解決策は、問題の原因を見つけて修正することですが、これらは回避策として機能する可能性があります。

  1. splitを使用します(man split-ファイルを分割します)。ほとんどのUNIXシステムにインストールされているようです。
  2. Ddを介してファイルを分割します(dd if = inputfilename of = file_part0 skip = 0 bs = 500MB)。 (skip = 1と別のファイル名で繰り返します。)
  3. ダウンロードを再開できるプログラムを使用してください。 FTPは機能します(ただし、ほとんどのファイアウォールではうまく機能しないプレーンテキストのパスワード、個別の制御およびデータ接続)
  4. ファイルをごまかしてWebディレクトリに移動します。ほとんどのブロザーはダウンロードの再開をサポートしていますが、
2
Hennes

bittorrent protocol は、セットアップが最も簡単ではないかもしれませんが、このタスクをうまく処理します。

2
Steven Lu

split ファイルを小さなチャンクに分割し、もう一方の端でそれらを再アセンブルすることができます。または、FTPまたはHTTPデーモンを実行している場合は、デーモンを介してダウンロードを実行できる必要があります。どちらも通常、ダウンロードの再開をサポートしています。

1
Andrew Lambert