1

Это Mac с Mac (оба на 10.12, Sierra), и я хочу синхронизировать множество аудио и видео файлов с моего локального Mac на сервер (другой Mac). Размер видеофайлов может составлять 1 или более ГБ каждый, но хотя аудиофайлы имеют меньший размер, все еще можно наблюдать за ходом процесса, поскольку они занимают некоторое время, даже в гигабитной сети.

Мой вопрос касается всей / частичной / дельты операции rsync. Насколько я могу судить, даже используя ssh в качестве транспорта, он должен только копировать изменения в файлы, но с незначительными изменениями в файлах (например, тегом ID3 в аудиофайле MP3) весь файл повторно отправляется. Сначала он сообщает, что удаляет загрузку файлов, а затем снова отправляет те же файлы, весь файл, который должен появиться. Я могу наблюдать прогресс в процентах, и кажется, что это займет столько времени, сколько копирование файла такого размера обычно занимает сеть. Похоже, что ничего не было получено с использованием умного алгоритма для простой передачи дельт.

При каких обстоятельствах rsync сначала удалит файл, а затем снова отправит весь файл по сети?

отредактированный

- на месте я считаю, что это медленнее и, конечно, меньше защищает данные в случае прерывания. Также -z вряд ли поможет в случае аудио и / или видеоконтента. Помимо исключений и т.д., Я просто использую опцию -a с nv и --progress, если я просто тестирую. Проблема заключается в том, что в этом случае файл объемом 1 ГБ с небольшим изменением внутреннего тега метаданных не должен занимать много времени для синхронизации, поскольку отправка требуется только очень небольшому количеству данных, но я наблюдаю за прогрессом% и занимает по крайней мере Пока это просто скопировать весь файл. Я могу только предположить, что он отправляет весь файл снова, особенно когда он сообщает, что удаляет этот файл в самом начале. Если он действительно сначала удаляет его таким образом, тогда НЕТ способа, которым он может просто отправить дельты. Это действительно удаление этих файлов в первую очередь или просто говорит, что и на самом деле просто означает, что файл нуждается в обновлении?

1 ответ1

1

Не видя командной строки rsync, трудно быть уверенным в том, что происходит, но посмотрите man rsync и посмотрите параметры --verbose, --inplace, --partial и --progress.

Обычно я использую такие команды, как rsync -e ssh -avzP --inplace <src> <dst> для передачи файлов на месте через ssh с режимом архивирования (a), подробными сообщениями (v), сжатием (z) и частичным + поддержка прогресса (P).

Богатый Аллоуэй (RogueWave)

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