rsync 时间比较 - 修改时间比较的精度是多少

rsync 时间比较 - 修改时间比较的精度是多少

我正在使用 rsync 进行一些同步:

rsync --rLvv --times --size-only 

对于我的初始同步。我的想法,现在是使用:

rsync --rLvv --次

同步具有新修改时间的文件。我的问题是,在初始 rsync 后,我在已同步的文件上看到以下修改时间:

远程$ 统计 6080_04_big.mp4
  文件:“6080_04_big.mp4”
  大小:258788267 块:505448 IO 块:4096 个常规文件
设备:903h/2307d 索引节点:862897 链接:1
访问:(0644/-rw-r--r--) Uid:( 2000/ht) Gid:( 2000/ cust)
访问时间: 2010-08-13 10:46:20.000000000 -0700
修改: 2010-08-12 17:55:08.000000000 -0700
更改: 2010-08-13 10:46:20.205721673 -0700
本地$统计6080_04_big.mp4
  文件:“6080_04_big.mp4”
  大小:258788267 块:505448 IO 块:4096 个常规文件
设备:902h/2306d 索引节点:136015 链接:1
访问权限:(0664/-rw-rw-r--) Uid:( 506/ admin) Gid:( 506/ admin)
访问时间: 2010-08-12 20:55:01.482104000 -0400
修改: 2010-08-12 20:55:08.468122000 -0400
更改: 2010-08-12 21:15:06.952810711 -0400

修改时间“实际上”相同,但仅减少到秒。这里比较的分辨率是多少?似乎直到第二秒为止相同的任何内容都被认为是相同的,但我找不到任何指定这一点的文档。有人知道吗?

答案1

这是我回答我自己的问题:

rsync 使用 utime() 调用,将文件的修改时间设置为 1 秒分辨率。因此,实际上,对于 rsync 检查的时间比较部分,直到第二秒都相同的文件被认为是相同的。

答案2

来自 rsync 文档 (rsync.1.md):

0.  `--modify-window=NUM`, `-@`

    When comparing two timestamps, rsync treats the timestamps as being equal
    if they differ by no more than the modify-window value.  The default is 0,
    which matches just integer seconds.  If you specify a negative value (and
    the receiver is at least version 3.1.3) then nanoseconds will also be taken
    into account.  Specifying 1 is useful for copies to/from MS Windows FAT
    filesystems, because FAT represents times with a 2-second resolution
    (allowing times to differ from the original by up to 1 second).

    If you want all your transfers to default to comparing nanoseconds, you can
    create a `~/.popt` file and put these lines in it:

    >     rsync alias -a -a@-1
    >     rsync alias -t -t@-1

    With that as the default, you'd need to specify `--modify-window=0` (aka
    `-@0`) to override it and ignore nanoseconds, e.g. if you're copying
    between ext3 and ext4, or if the receiving rsync is older than 3.1.3.

相关内容