Я пытаюсь загрузить ~ 3 миллиона файлов JPEG, ~ 90 ГБ, на удаленный сервер. Сначала я думал, что rsync отлично подойдет для этой работы, и сначала он полностью насытил мою ссылку для загрузки.

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

Поэтому я больше не делаю никакого прогресса, потому что запуск занимает слишком много времени и отменяется, прежде чем он может завершиться. Мне нужен rsync или что-то вроде rsync, которое знает об обрыве соединения и может восстановить соединение без потери всего прогресса.

Есть ли такой инструмент или опция для rsync?

3 ответа3

1

Пара мыслей -

Rsync проверяет контрольную сумму файлов? Если это так, измените поведение на дату / время и размер файла и убедитесь, что эти атрибуты сохраняются.

Установите OpenVPN между клиентом и сервером и rsync через него. Поскольку IP-адреса конечных точек не меняются и поскольку нет NAT для разрыва соединения, при возобновлении OpenVPN rsync продолжит с того места, где оно было прервано.

0

Подводя итог моему опыту будущих гуглеров:

  • Попытка разбить файлы на несколько пакетов с помощью копирования *, b * и т.д. - хорошая идея, которая помогла завершить загрузку.

  • Фактическая проблема заключалась в том, что я допустил ошибку при выборе тома жесткого диска на облачном сервере, на который я загружал. Жесткий диск вообще не может обрабатывать каталог с 3 миллионами файлов, даже такие инструменты, как cp, не смогли переместить данные с жесткого диска в другое место, просто потратив целую вечность на подготовку на 100% времени ожидания диска, фактически не копируя файлы. После использования SSD вместо этого процесс запуска rsync происходит намного быстрее и больше не создает проблем.

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .