У нас есть две точки монтирования на двух дисках, оба одного типа. Оба диска отформатированы в ext4.
An rsync
команда с параметрами для синхронизации от источника к месту назначения.
После выполнения rsync отображаются следующие данные:
Диск 1 - Источник
315.8 GiB (339,148,905,125) - 476,038 files, 21,975 sub-folders.
Диск 2 - Место назначения
315.8 GiB (339,098,108,411) - 476,038 files, 21,975 sub-folders.
Разница
50,796,714
байт (~ 50 Мб)
Используемая команда
rsync -r -t -p -o -g -v --progress --delete --ignore-existing -s /media/user/disk1 /media/user/disk2
Почему общий размер байтов разный?
Предложенный ответ была предпринята. Размер байта между источником и местом назначения не показал улучшения в выравнивании размера.
Предлагаемая команда ответа включала -a
и -l
переключатели, добавляющие архивирование и перенос символьных ссылок:
rsync -a -r -t -p -o -g -v -l --progress --delete --ignore-existing -s /media/user/disk1 /media/user/disk2
(Полученные результаты)
Диск 1 - Источник
315.8 GiB (339,148,905,125) - 476,038 files, 21,975 sub-folders.
Диск 2 - Место назначения
315.8 GiB (339,098,108,411) - 476,038 files, 21,975 sub-folders.
Разница
50,796,714
байт (~ 50 Мб)
Проблема не решена.
Аналогичная проблема обнаружена у SuperUser:
Из ServerFault:
Размер Rsync отличается от источника к месту назначения
Были сделаны запросы на du
и df
выходы, и результаты были:
root@system:/# du -s /media/user/disk1
332172440 /media/user/disk1
root@system:/# du -s /media/user/disk2/
332119568 /media/user/disk2/
root@system:/# df /media/user/disk1
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdc 528316088 332243868 169212316 67% /media/user/disk1
root@system:/# df /media/user/disk2/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb 528316088 332190996 169265164 67% /media/user/disk2
Таким образом, разница между disk1 и disk2 по-прежнему составляет 52 872 человека.
По многим причинам. Например, вы не используете -a
или -l
, поэтому символические ссылки преобразуются в обычные файлы. Вы не используете -H
поэтому жесткие ссылки становятся обычными файлами.
В Unix / Linux также существует явление, когда удаленный файл по-прежнему занимает пространство, пока все процессы, которые его открыли, не решат закрыть его. Могут ли быть открытые файлы в пункте назначения до rsync?
Наконец, это может быть проблема с Source sparse files
не обрабатываются должным образом, но это менее вероятно, поскольку rsync обычно с ними справляется.
PS rsync FAQ дает и другие возможности (источник):
- Если ваша цель немного меньше, чем ваш источник, вероятная причина - разница в размерах каталогов. Это просто из-за того, как каталоги распределяют дисковое пространство, и тут ничего не поделаешь. Я разработал быструю команду оболочки для суммирования всех размеров файлов в текущем каталоге без включения размеров каталогов:
echo `find . -type f -ls | awk '{print $7 "+"}'`0 | bc
- Также существуют различия в типах файловых систем, размерах блоков, накладных расходах файлов и т. Д., Которые могут привести к различным результатам.
tune2fs -l /dev/your_block_device | grep -i 'block size'
- Если вы проверили все это, и вас по-прежнему беспокоит необъяснимая разница в размерах, я хотел бы указать, что простые размеры не очень полезны для проверки полноты или точности операции копирования данных. Он вообще не проверяет содержимое файлов и может быть изменен, как я объяснил выше. Я бы посоветовал использовать настоящую утилиту проверки файлов, такую как cfv для проверки ваших файлов с использованием реальных криптографических хешей. Утилита cfv очень похожа на простую
md5sum
утилита, за исключением того, что она рекурсивна, быстрее и имеет полосу завершения%.