Rsync с файлами .dd.xz

Я пытаюсь разными способами обновить/записать образ на устройстве с Linux и использую для этого rsync.

Для синхронизации файловой системы rsync проверяет и передает только отсутствующие/измененные файлы, уменьшая пропускную способность.

Аналогичным образом я создал двоичный файл размером 10 МБ (original.bin) и изменил этот файл, добавив несколько изменений (modified.bin), и попытался выполнить rsync файл original.bin. В первый раз он передает весь файл, так как нет копии на устройстве. Далее модифицированный файл .bin переименовывается в original.bin и делается rsync. Он перенес изменения только в модифицированный .bin. Я хочу знать, то же самое и с файлами .dd.xz. У меня есть 2 файла .dd.xz (image1.dd.xz и image2.dd.xz, в которые добавлено несколько DLL и монопакетов), и когда эти файлы извлекаются в файлы .dd, а rsync передает только изменения.

Но когда я синхронизирую файлы как .dd.xz, он снова передает весь файл. Может ли кто-нибудь помочь мне понять, является ли это ожидаемым поведением или rsync ведет себя так же с файлами .dd, как и с любыми другими текстовыми файлами?


person user2500239    schedule 15.05.2017    source источник


Ответы (1)


xz — это расширение, используемое инструментом сжатия xz. Сжатые файлы не работают с rsync по понятным причинам.

Подумайте, не лучше ли вам использовать изображения dd без их сжатия. Вы можете (рас)сжимать их быстрее с помощью команды pixz, которая выполняет свою работу параллельно, используя все доступные процессоры.

person Ricardo Branco    schedule 15.05.2017
comment
Спасибо за ответ Рикардо. Да, xz используется для сжатия. Но я создал два примера файлов и попробовал rsync. Он только передал изменение файлов в обоих сценариях файла bianry и сжатого файла (.7z). (оригинальный.bin имеет размер 1 МБ, а модифицированный.bin имеет 15 КБ данных, добавленных в начале, и 15 КБ данных, добавленных в середине файла к исходному файлу). - person user2500239; 16.05.2017
comment
Rsync original.bin Всего отправлено байтов: 43 Всего получено: 1 049 265. Rsync модифицированный.bin - Всего отправлено байтов: 43 Всего получено: 1 080 112 . переименуйте модифицированный.bin в исходный.bin так, чтобы он rsync основывался на уже существующем файле отправлено: 6 187 получено: 31 900 (передаются только изменения). Я использовал 7zip, чтобы заархивировать оба файла, и попробовал rsync. Rsync original.7z — Всего отправлено байтов: 43 Всего получено байтов: 1 049 454, Rsync модифицировано.7z Всего отправлено байтов: 43 Всего получено байтов: 1 080 306 Переименование модифицированного.7z в original.7z и повторный запуск rsync — Всего отправлено байтов: 6 193 Всего получено байтов : 74 561 - person user2500239; 16.05.2017
comment
К сжатым файлам применить дельта-алгоритм сложнее из-за характера сжатия. Сжатие должно применяться после дельта-алгоритма. По этой причине rsync передает сжатые файлы целиком, даже не пытаясь обнаружить какие-либо изменения. - person Ricardo Branco; 16.05.2017