cwRsync, сетевой диск, проблема времени модификации файла

Я использую 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 файл только для упрощения вывода, ситуация такая же, как и при любом количестве разных файлов. Он всегда отправляет полное содержимое каждого файла. Что здесь может быть не так, и как я могу это исправить?


person Index    schedule 08.12.2016    source источник


Ответы (1)


Я предполагаю, что жесткий диск в сетевой папке использует FAT, потому что из Время файла:

Например, разрешение времени создания в FAT составляет 10 миллисекунд, в то время как время записи имеет разрешение 2 секунды, а время доступа имеет разрешение 1 день, поэтому на самом деле это дата доступа.

Это объясняет разницу во времени.

И по этой причине rsync добавил --modify- опция окна:

-@, --modify-window

При сравнении двух временных меток rsync считает временные метки равными, если они отличаются не более чем на значение окна модификации. Значение по умолчанию равно 0, что соответствует только целым числам секунд. Если указать отрицательное значение (и приемник не ниже версии 3.1.3), то будут учитываться и наносекунды. Указание 1 полезно для копий в/из файловых систем FAT MS Windows, потому что FAT представляет время с 2-секундным разрешением (позволяя времени отличаться от оригинала до 1 секунды).

Поэтому попробуйте добавить -@1 в свою команду.

person ssbssa    schedule 14.12.2016