
我在遠端 Linux Ubuntu 伺服器上有一個約 35 GB 的檔案。在本地,我運行的是 Windows XP,因此我使用 SSH 連接到遠端 Linux 伺服器(具體來說,我使用的是一個名為SSH 安全外殼用戶端版本 3.3.2)。
雖然我的寬頻網路連線非常好,但我下載大檔案時經常失敗並出現Connection Lost
錯誤訊息。我不確定,但我認為它失敗了,因為我的網路連線可能每隔幾個小時就會中斷一兩秒鐘。由於檔案太大,下載可能需要 4.5 到 5 小時,並且在這段時間內網路連線可能會中斷一兩秒鐘。我認為這是因為我已經在同一台電腦上使用相同的網路連線和相同的 SSH 軟體成功下載了這種大小的檔案。換句話說,有時我很幸運,在網路連線中斷之前下載就完成了。
有沒有什麼方法可以讓我以智慧方式下載檔案——作業系統或軟體「知道」檔案在哪裡停止,並且如果網路連線發生中斷,可以從上一個點恢復?
也許可以分段下載檔案?雖然我不知道是否可以輕鬆地將我的文件拆分為多個文件 - 我認為這會非常困難,因為該文件是二進位文件並且不可讀。
就像現在一樣,如果在連接中斷之前整個 ~35 GB 檔案下載沒有完成,那麼我必須重新開始下載並覆蓋迄今為止本地下載的 ~5-20 GB 區塊。
你有什麼建議嗎?謝謝。
答案1
我的「正確」解決方案是找到並修復導致問題的原因,但這些事情可能可以作為解決方法:
- 使用 split ( man split -- 將檔案分割成多個部分)。它似乎安裝在大多數unix 系統上。
- 透過 dd 分割檔案(dd if=inputfilename of=file_part0 skip=0 bs=500MB)。 (使用skip=1和不同的檔名重複。)
- 使用可以恢復下載的程式。 FTP 可以使用(但呃。純文字密碼、單獨的控制和資料連接,這對於大多數防火牆來說效果不佳)
- 作弊並將文件移至 Web 目錄。大多數瀏覽器都支援斷點續傳,
答案2
我rsync --partial
在 Windows 上使用 Cygwin。效果很好。
答案3
這比特流協定可以很好地處理這項任務,儘管它可能不是最容易設定的。
答案4
你可以分裂將檔案分成更小的區塊,然後在另一端重新組裝它們。或者,如果您正在執行 FTP 或 HTTP 守護程序,您應該能夠透過守護程序執行下載,這兩種守護程序通常都支援下載復原。