Я использую rsync (с Cygwin) для синхронизации 2 локальных папок. Папки содержат двоичные файлы.
Я использую следующую команду:
rsync.exe -av dir1/ dir2/
но файлы в dir2 только частично обновляются, существует немного различных файлов.
Кто-либо знает о проблеме с rsync в Windows? Я должен использовать некоторые другие флаги?
Это - предположение: могло бы случиться так, что разрешение времени не является достаточно большим, и файлы отличаются, в то время как их метки времени попадают в ту же секунду и имеют ту же длину, таким образом, rsync не может отличить их и пропускает их, думая, что они - то же. Опция --ignore-times
мог бы помочь в этом случае, поскольку это вынудит rsync проверить содержание файла, не только размер файла и метку времени.
Другая альтернатива --ignore-times
--checksum
, который вызовет rsync к контрольной сумме каждый файл и должен гарантировать Вам, что каталоги точно равны впоследствии, это однако замедлит вещи немного, особенно на больших файловых иерархиях.
Другая более приземленная проблема могла просто приводить к сбою аппаратные средства, RAM, жесткий диск или независимо от того, что это приводит к файлам, скопированным неправильно, я видел, что происходят довольно много раз. Проверять на то использование средство проверки памяти как memtest86+
и сделайте повторенные копии той же структуры каталогов к другому целевому каталогу и сравните результаты, если результаты отличаются каждый раз, когда что-то подозрительно.
Rsync мощен и умен, но действительно необходимо понять точно, что Вы просите, чтобы это сделало, что означает читать целые ручные три раза. Ваше использование его выглядит простым, но также - много вещей, которые не являются.
И да, - целый файл является значением по умолчанию для локально-локального rsync.