Comparación de tiempos de rsync: ¿cuál es la precisión de la comparación de tiempos modificados?

Comparación de tiempos de rsync: ¿cuál es la precisión de la comparación de tiempos modificados?

Estoy sincronizando un poco con rsync usando:

rsync --rLvv --times --solo tamaño 

Para mi sincronización inicial. Mi idea ahora es usar:

rsync --rLvv --veces

Para sincronizar archivos que tienen una nueva hora de modificación. Mi problema es que después del rsync inicial, veo los siguientes tiempos de modificación en los archivos que se han sincronizado:

remoto$ estadística 6080_04_big.mp4
  Archivo: `6080_04_big.mp4'
  Tamaño: 258788267 Bloques: 505448 Bloque IO: 4096 archivo normal
Dispositivo: 903h/2307d Inodo: 862897 Enlaces: 1
Acceso: (0644/-rw-r--r--) Uid: ( 2000/ht) Gid: ( 2000/ cust)
Acceso: 2010-08-13 10:46:20.000000000 -0700
Modificar: 2010-08-12 17:55:08.000000000 -0700
Cambio: 2010-08-13 10:46:20.205721673 -0700
estadística local $ 6080_04_big.mp4
  Archivo: `6080_04_big.mp4'
  Tamaño: 258788267 Bloques: 505448 Bloque IO: 4096 archivo normal
Dispositivo: 902h/2306d Inodo: 136015 Enlaces: 1
Acceso: (0664/-rw-rw-r--) Uid: (506/ admin) Gid: (506/ admin)
Acceso: 2010-08-12 20:55:01.482104000 -0400
Modificar: 2010-08-12 20:55:08.468122000 -0400
Cambio: 2010-08-12 21:15:06.952810711 -0400

El tiempo de modificación es "efectivamente" el mismo, pero sólo hasta el segundo. ¿Cuál es la resolución de la comparación aquí? Parece que todo lo que es igual hasta el segundo se considera igual, pero no puedo encontrar ningún documento que lo especifique. ¿Alguien lo sabe de memoria?

Respuesta1

Aquí estoy respondiendo mi propia pregunta:

rsync utiliza la llamada utime() que establece el tiempo de modificación de un archivo en una resolución de 1 segundo. Entonces, efectivamente, los archivos que son iguales hasta el segundo se consideran iguales para la comparación de tiempo de las comprobaciones de rsync.

Respuesta2

del documento 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.

información relacionada