
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.