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 работает правильно, если оба каталога находятся на локальном диске. Это происходит только с сетевым диском.

В свойствах окон есть разница во времени модификации в 1 секунду, что может вызвать проблему. свойства окон

Я взял только 1 файл в качестве примера, только чтобы упростить вывод, ситуация та же, что и для любого количества разных файлов. Он всегда отправляет полное содержимое каждого файла. Что здесь может быть не так, и как я могу это исправить?

1 ответ

Решение

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

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

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

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

- @, --modify-window

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

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

Другие вопросы по тегам