Я использую cwRsync 5.4.1 x86 Free под Windows и пытаюсь синхронизировать папку с сетевым диском. Я выполняю следующую команду:
rsync.exe -rLtv --delete --ignore-errors "/cygdrive/d/1/" "/cygdrive/z/ZipNB/"
Где D — локальный диск, а Z — сетевой диск (внешний жесткий диск, подключенный к маршрутизатору, RT-N16). Выполнение его несколько раз дает один и тот же результат:
>rsync.exe -rLtv --delete --ignore-errors "/cygdrive/d/1/" "/cygdrive/z/ZipNB/"
sending incremental file list
./
1.pdf
sent 11,893,922 bytes received 38 bytes 1,829,840.00 bytes/sec
total size is 11,890,918 speedup is 1.00
У меня есть один файл в папке, и он отправляет свое содержимое при каждом выполнении. Файл каждый раз один и тот же и не был изменен в середине.
Если я добавлю дополнительный параметр --size-only, он будет работать как положено:
>rsync.exe -rLtv --delete --ignore-errors --size-only "/cygdrive/d/1/" "/cygdrive/z/ZipNB/"
sending incremental file list
./
sent 72 bytes received 22 bytes 188.00 bytes/sec
total size is 11,890,918 speedup is 126,499.13
DIR для обоих каталогов:
D:\1>dir
Volume in drive D is XXX
Volume Serial Number is XXXX-XXX
Directory of D:\1
08.12.2016 10:04 <DIR> .
08.12.2016 10:04 <DIR> ..
24.11.2016 18:31 11 890 918 1.pdf
1 File(s) 11 890 918 bytes
Z:\ZipNB>dir
Volume in drive Z is BackUp (at Portable)
Volume Serial Number is XXXX-XXX
Directory of Z:\ZipNB
08.12.2016 10:04 <DIR> .
08.10.2016 20:40 <DIR> ..
24.11.2016 18:31 11 890 918 1.pdf
1 File(s) 11 890 918 bytes
Я не уверен, но, насколько мне известно, rsync по умолчанию выполняет проверку файла по времени модификации и размеру. Оба файла кажутся идентичными. Но похоже, что cwRsync по какой-то причине получает/устанавливает неправильную дату модификации файла на диске Z. cwRsync работает корректно, если обе директории находятся на локальном диске. Это происходит только с сетевым диском.
В свойствах Windows есть разница во времени модификации в 1 секунду, что может вызвать проблему.
Я взял для примера только 1 файл только для упрощения вывода, ситуация такая же, как и при любом количестве разных файлов. Он всегда отправляет полное содержимое каждого файла. Что здесь может быть не так, и как я могу это исправить?