Сравнение времени rsync - какова точность сравнения измененного времени

Сравнение времени rsync - какова точность сравнения измененного времени

Я делаю синхронизацию с помощью rsync, используя:

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

Для моей первоначальной синхронизации. Моя идея, сейчас, использовать:

rsync --rLvv --times

Синхронизировать файлы, имеющие новое время изменения. Моя проблема в том, что после первоначального rsync я вижу следующие времена изменения для синхронизированных файлов:

удаленный$ stat 6080_04_big.mp4
  Файл: `6080_04_big.mp4'
  Размер: 258788267 Блоки: 505448 Блок ввода-вывода: 4096 обычный файл
Устройство: 903h/2307d Inode: 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
локальный$ stat 6080_04_big.mp4
  Файл: `6080_04_big.mp4'
  Размер: 258788267 Блоки: 505448 Блок ввода-вывода: 4096 обычный файл
Устройство: 902h/2306d Inode: 136015 Ссылки: 1
Доступ: (0664/-rw-rw-r--) Uid: (506/администратор) Gid: (506/администратор)
Доступ: 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.

Связанный контент