Назад | Перейти на главную страницу

Надежная передача файлов по медленной или нестабильной сети

Мне нужно передать несколько файлов-файлов по низкокачественному широкополосному каналу на сервер. Файлы большие, и передача каждого файла занимает около 30 минут.

Я использую scp, но иногда он зависает - передача не завершается с ошибкой, продолжает выполняться, но никакие дальнейшие данные не передаются.

Итак, я ищу "отказоустойчивое" решение для загрузки, которое будет работать, даже если ссылка не работает в течение нескольких минут или по другим причинам ненадежна.

Моя идея:

  1. разбить большой файл на мелкие части
  2. загрузить части с тайм-аутом и повторить попытку в случае неудачи

Вопросы:

Вы можете использовать rsync для копирования файла с одного компьютера на другой. rsync может использовать ssh в качестве основного транспорта. Объединить rsync --partial со сценарием, например вот этот чтобы повторить попытку в случае сбоя сети, и вы сможете перемещать файлы даже при возникновении сетевых ошибок.

Другой способ сделать это - смонтировать удаленную файловую систему на локальном компьютере с помощью sshfs -o reconnect, а затем просто скопируйте файл (ы). Об остальном позаботится sshfs / Linux. Судя по некоторым тестам, которые я провел сегодня, это много медленнее, чем rsync.

Наконец, вы можете настроить VPN между двумя машинами. Это требует большей работы, и любое из вышеперечисленных решений намного проще, но оно решит проблему нестабильного сетевого подключения. И, как отметили некоторые люди, это тоже может быть нестабильным. Это жестяная банка работают, если VPN очень агрессивно относится к восстановлению соединений, как OpenVPN, но приведенные выше решения намного лучше.