Вопрос: Надежная передача файлов по медленной или нечеткой сетевой ссылке


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

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

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

Моя идея:

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

Вопросов:

  • есть ли готовый к запуску инструмент, который реализует эту идею? (никакая конкретная потребность в scp. не может быть ftp или что-то еще)
  • есть ли способ обнаружить, когда scp зависает? ((то есть он все еще работает, но не передает данные)

8
2017-07-15 01:41


Источник




Ответы:


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

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

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


15
2017-07-15 01:58



Чтобы выполнить эту работу, вам нужно будет использовать --partial флаг (или что-то, что подразумевает --partial как --inplace) в противном случае всякий раз, когда передача прерывается, частичная передача будет удалена, и вам придется начинать заново. - womble♦
Rsync определенно способ пойти ... Или robocopy для окон. - Brian Adkins
Как именно VPN поможет с плохим соединением? - EEAA♦
Программное обеспечение VPN (например, OpenVPN) может автоматически подключаться в фоновом режиме, прозрачно к любым приложениям, работающим через VPN. - Michael Hampton♦
@ErikA Мои мысли точно - VPN через flakey link = flakey VPN, которая всегда должна перезагружаться. Это лишь добавляет второй уровень к проблеме, которая заключается в том, что транспортное программное обеспечение должно иметь возможность перезапускать передачу файлов точно там, где это было прервано. - Fiasco Labs