Кроссплатформенный инструмент для копирования больших файлов с проверкой данных в пути

Мне нужно скопировать несколько сотен ГБ данных между двумя машинами. Из-за ограниченного дискового пространства и времени я бы предпочел заведомо исправную передачу с первого раза, поэтому мне нужно что-то, что проверяет данные во время передачи. (Я совершенно определенно все еще буду проверять файлы, когда они будут готовы, чтобы убедиться, что они действительно были переданы правильно, но проверка в процессе значительно сводит к минимуму вероятность того, что что-то пойдет не так, и я очень ценю это.)

Машина с данными на ней работает под управлением Linux; пункт назначения — ноутбук под управлением Windows 7 (по крайней мере, до тех пор, пока я не установлю на него Linux). Таким образом, инструмент должен как минимум поддерживать Win7 и Linux.

Мой Wi-Fi в основном довольно стабилен, но иногда возникают помехи / дрожание; он также время от времени внезапно уходит на обед, и, конечно же, перезагрузка питания убивает все активные соединения. Итак, я ищу что-то, что изящно обрабатывает «полностью отключено» и постоянно повторяет попытки повторного подключения до тех пор, пока не добьется успеха.

Я взвесил шифрование и отсутствие шифрования и решил, что хотя оно мне и не нужно, я также не вижу смысла обходиться (или предлагать) программами, которые не реализуют шифрование, учитывая вездесущность HTTPS.

Прозрачное сжатие допустимо, но не критично; Я не уверен, что данные, которые я передаю, будут хорошо сжаты.

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

Вот то, что я уже изучил:

  • BitTorrent: идеально (клиент разработан с учетом скоротечности сети и низкого качества), за исключением отсутствия встроенного шифрования файлов и того факта, что P2P широко не одобряется, поэтому я обычно избегаю его использования.

  • FTP/FTPS, HTTP/HTTPS: проверка не поддерживается :(

  • Metalink: протокол отличный (и он работает через HTTPS!), но я не знаю ни одного клиента, который действительно поддерживает хэши. Я действительно не думаю, что вся идея «... и ... готово! Подождите, хэш вашего 100-гигабайтного файла неверен, нам нужно начать сначала» имеет какой-либо смысл.

  • Resilio Sync: с закрытым исходным кодом, вероятно, реализует отслеживание; очень неохота пользоваться :/

«по крайней мере, пока я не установлю на него Linux» - это относится к вопросу? Если это произойдет в ближайшее время, не могли бы вы отложить передачу данных и принять решение только для Linux?

Ответы (1)

Syncthing , кажется, почти точно соответствует тому, что вы здесь просите.

Это обеспечивает:

  • Активная проверка блоков данных по мере их передачи с автоматической повторной загрузкой поврежденных блоков.
  • Шифрование данных при передаче.
  • Высокая устойчивость к сетевым проблемам (он автоматически переподключится и продолжит копирование данных с того места, где оно было остановлено).
  • Прозрачное сжатие данных в сети, хотя использование этого си обычно не рекомендуется, поскольку оно часто не экономит много времени.
  • Работает в Linux и Windows (хотя с Linux работать намного проще).

Внутренне он работает очень похоже на BitTorrent (изначально он был разработан как конкурент BTSync).

Единственным возможным недостатком является то, что он предназначен для непрерывной синхронизации данных, а не для однократной передачи, как вам кажется. Это означает, что первоначальная настройка будет немного более сложной, чем некоторые другие параметры, и вам нужно быть осторожным, чтобы не изменять какие-либо файлы в целевой системе во время синхронизации (в противном случае изменения могут быть скопированы обратно в исходная система), но в остальном он должен работать достаточно хорошо для того, что вы хотите.