
У меня есть файл размером ~35 ГБ на удаленном сервере Linux Ubuntu. Локально я использую Windows XP, поэтому я подключаюсь к удаленному серверу Linux с помощью SSH (в частности, я использую программу Windows под названиемКлиент защищенной оболочки SSHверсия 3.3.2).
Хотя мое широкополосное интернет-соединение довольно хорошее, загрузка большого файла часто прерывается с Connection Lost
сообщением об ошибке. Я не уверен, но думаю, что это происходит из-за того, что мое интернет-соединение, возможно, прерывается на секунду или две каждые несколько часов. Поскольку файл такой большой, его загрузка может занять от 4,5 до 5 часов, и, возможно, интернет-соединение прерывается на секунду или две в течение этого длительного времени. Я думаю, это потому, что я успешно загружал файлы такого размера, используя то же интернет-соединение и то же программное обеспечение SSH на том же компьютере. Другими словами, иногда мне везет, и загрузка завершается до того, как интернет-соединение прерывается на секунду.
Есть ли какой-либо способ загрузить файл интеллектуальным способом, при котором операционная система или программное обеспечение «знают», где остановились, и могут возобновить загрузку с последней точки в случае обрыва интернет-соединения?
Возможно ли загрузить файл по частям? Хотя я не знаю, смогу ли я удобно разбить свой файл на несколько файлов -- я думаю, что это будет очень сложно, так как файл двоичный и нечитаемый человеком.
На данный момент, если загрузка всего файла объемом ~35 ГБ не завершится до разрыва соединения, мне придется начинать загрузку заново и перезаписывать фрагмент объемом ~5–20 ГБ, который был загружен локально.
Есть ли у вас какие-нибудь советы? Спасибо.
решение1
Моим «правильным» решением было бы найти и устранить причину проблемы, но эти вещи могут сработать в качестве обходных путей:
- используйте split (man split -- разделить файл на части). Кажется, он установлен в большинстве систем unix.
- Разделите файл с помощью dd (dd if=inputfilename of=file_part0 skip=0 bs=500MB). (повторите с skip=1 и другим именем файла.)
- Используйте программу, которая может возобновить загрузку. FTP подойдет (но фууу. Пароли в виде простого текста, раздельное управление и подключение к данным, которые несовместимы с большинством брандмауэров)
- Обмануть и переместить файл в веб-каталог. Большинство браузеров поддерживают возобновление загрузки,
решение2
Я использовал rsync --partial
Cygwin на Windows. Работает отлично.
решение3
Theпротокол bittorrentхорошо справится с этой задачей, хотя это может быть не так просто в настройке.
решение4
Вы могли бырасколотьфайл на более мелкие части, а затем собрать их заново на другом конце. В качестве альтернативы, если у вас запущен демон FTP или HTTP, вы должны иметь возможность запустить загрузку через демон, оба из которых обычно поддерживают возобновление загрузки.