cwRsync,网络驱动器,文件修改时间问题

时间:2016-12-08 08:50:11

标签: windows backup cwrsync

我在Windows下使用cwRsync 5.4.1 x86 Free并尝试将文件夹同步到网络驱动器。 我执行以下命令:

rsync.exe -rLtv --delete --ignore-errors "/cygdrive/d/1/" "/cygdrive/z/ZipNB/"

其中D是本地驱动器,Z是网络驱动器(连接到路由器的外部HDD,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秒内存在差异,这可能会导致问题。 windows properties

我只用了一个文件作为例子,只是为了简化输出,情况同样会产生任意数量的不同文件。它始终发送每个文件的完整内容。 这里有什么问题,以及我如何解决它?

1 个答案:

答案 0 :(得分:1)

我猜测网络共享上的硬盘使用FAT,因为来自File Times

  

例如,FAT上的创建时间分辨率为10毫秒,   写入时间的分辨率为2秒,访问时间为   分辨率为1天,所以它确实是访问日期。

这可以解释时差。

由于这种原因rsync添加了 - 修改窗口选项:

  

- @, - modify-window

     

比较两个时间戳时,如果时间戳相差不超过修改窗口值,则rsync将时间戳视为相等。   默认值为0,仅匹配整数秒。如果你指定一个   负值(接收器至少是版本3.1.3)然后   纳秒也将被考虑在内。指定1很有用   用于复制到/来自MS Windows FAT文件系统的副本,因为FAT表示   2秒分辨率的时间(允许时间不同于   原来最多1秒)。

因此,请尝试将 - @ 1 添加到您的命令中。