Передача файла, который постоянно изменяется, добавляя новые строки

Итак, у меня есть компьютер с Windows, который постоянно собирает данные для физического эксперимента. Данные сохраняются в текстовом файле, для которого каждое новое событие добавляется в новой строке.

Каждый раз, когда мне нужно повторно проанализировать данные, которые я передаю в sbu, файл переносится на компьютер с Ubuntu, вначале это нормально, но когда файл переходит в 1 ГБ, он начинает действительно занимать много времени для передачи файла дыры снова и снова, когда отличаются только последние строки.

Чтобы дать вам представление о том, что эксперименты продолжаются около 3 часов, передача занимает ~ 5 минут на ГБ, файлы обычно имеют максимум 3 ГБ, а файлы имеют номер строки порядка десятков миллионов.

Если у вас есть решение, которое работает только для переноса из Linux в Linux, я также заинтересован, может быть, я смогу попробовать его с Cygwin.

1
задан 13 January 2014 в 22:12

2 ответа

rsync - это то, что вам нужно, и оно должно быть доступно для Windows.

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

Установите rsync в своей системе Windows, затем из системы Linux выполните:

rsync --progress ip.of.windows.server:/path/to/file ./

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

Обратите внимание, что rsync подключается с использованием ssh, поэтому, если ssh уже настроен и работает, rsync также должен работать нормально.

0
ответ дан 13 January 2014 в 22:12

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

Существуют инструменты, которые вычисляют различия в файле и копируют только новые биты, например, rsync (с использованием дельта-кодирования, дополнительную информацию здесь: http://en.wikipedia.org/wiki / Rsync )

0
ответ дан 13 January 2014 в 22:12

Другие вопросы по тегам:

Похожие вопросы: