1

Я использую rsync(с Cygwin) для синхронизации 2 локальных папок. Папки содержат двоичные файлы.

Я использую следующую команду:

rsync.exe -av dir1/ dir2/

но файлы в dir2 обновляются только частично, разных файлов немного.

Кто-нибудь знает о проблеме с rsync на Windows? Должен ли я использовать некоторые другие флаги?

2 ответа2

3

Это предположение: может случиться так, что разрешение по времени не достаточно велико, и файлы различаются, а их временные метки падают в одну и ту же секунду и имеют одинаковую длину, поэтому rsync не может их различить и пропускает, думая, что они являются так же. Опция --ignore-times может помочь в этом случае, так как это заставит rsync проверять содержимое файла, а не только размер файла и метку времени.

Другой альтернативой --ignore-times является --checksum , которая заставит rsync проверять контрольную сумму каждого файла и должна гарантировать, что впоследствии каталоги будут абсолютно равными, однако это немного замедлит работу, особенно в больших файловых иерархиях.

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

0

Rsync является мощным и умным, но вам нужно точно понимать, что вы просите его сделать, что означает чтение всего руководства три раза. Ваше использование выглядит просто, но так много вещей, которые не так.

И да, --whole-file является значением по умолчанию для локального локального rsync.

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