comparação de tempo rsync - qual é a precisão da comparação de tempos modificados

comparação de tempo rsync - qual é a precisão da comparação de tempos modificados

Estou sincronizando com o rsync usando:

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

Para minha sincronização inicial. Minha ideia, agora é usar:

rsync --rLvv --times

Para sincronizar arquivos que possuem um novo horário modificado. Meu problema é que após o rsync inicial, vejo os seguintes tempos modificados nos arquivos que foram sincronizados:

remoto $ stat 6080_04_big.mp4
  Arquivo: `6080_04_big.mp4'
  Tamanho: 258788267 Blocos: 505448 Bloco IO: 4096 arquivo regular
Dispositivo: 903h/2307d Inode: 862897 Links: 1
Acesso: (0644/-rw-r--r--) Uid: ( 2000/ht) Gid: ( 2000/ custo)
Acesso: 13/08/2010 10:46:20.000000000 -0700
Modificar: 12/08/2010 17:55:08.000000000 -0700
Alteração: 13/08/2010 10:46:20.205721673 -0700
local$stat 6080_04_big.mp4
  Arquivo: `6080_04_big.mp4'
  Tamanho: 258788267 Blocos: 505448 Bloco IO: 4096 arquivo regular
Dispositivo: 902h/2306d Inode: 136015 Links: 1
Acesso: (0664/-rw-rw-r--) Uid: ( 506/ admin) Gid: ( 506/ admin)
Acesso: 12/08/2010 20:55:01.482104000 -0400
Modificar: 12/08/2010 20:55:08.468122000 -0400
Alteração: 12/08/2010 21:15:06.952810711 -0400

O tempo de modificação é 'efetivamente' o mesmo, mas apenas em segundos. Qual é a resolução da comparação aqui? Parece que tudo o que é igual até o segundo é considerado igual, mas não consigo encontrar nenhum documento especificando isso. Alguém sabe de cara?

Responder1

Aqui estou eu respondendo minha própria pergunta:

rsync usa a chamada utime() que define o tempo de modificação de um arquivo para resolução de 1 segundo. Portanto, efetivamente, os arquivos que são iguais até o segundo são considerados iguais para a comparação de tempo das verificações do rsync.

Responder2

do 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.

informação relacionada