A atualização será sinalizada nos arquivos de transferência rsync se o registro de data e hora for idêntico na origem e no destino? Documentação não é clara

1

Eu quero transferir apenas arquivos novos e alterados, usando rsync no Ubuntu 14.04. Eu não quero transferir tudo, todas as vezes. Não estou preocupado em verificar se o conteúdo dos arquivos realmente mudou. Postagens semelhantes existem, mas não tenho certeza porque a documentação não está alinhada com o que é dito nesses posts.

A documentação em rsync diz:

-u, --update

This forces rsync to skip any files for which the destination file already exists and has a date later than the source file.

link

Editar : Encontrou outra página de documentação (provavelmente mais oficial). Diz:

-u, --update skip files that are newer on the receiver

link

Eu acho essas palavras mal formuladas. Em primeiro lugar, o primeiro diz "data". Eu suponho que realmente significa "timestamp". Em segundo lugar, e mais importante, parece implicar que um arquivo na origem e no destino com o mesmo timestamp será retransferido. A documentação diz claramente que ele ignorará apenas um arquivo quando o arquivo de destino tiver um registro de data e hora mais recente (ou seja, posterior) ( T_d ) do que o registro de data e hora do arquivo de origem ( T_s ), indicando que será transferido quando o arquivo de destino for mais antigo ou igual ao arquivo de origem: Ignorando a transferência se T_d > T_s implicar que ela será transferida quando T_d <= T_s .

Esta é uma questão importante para mim, porque se você quiser transferir todos os arquivos novos e alterados de uma pasta de origem para uma pasta de destino com o mínimo de trabalho possível (network / io / cpu / time), o sinalizador de atualização re-transferir tudo o tempo todo.

Ou talvez eu esteja sentindo falta de algo ou entendendo mal alguma coisa?

(Esta postagem foi rejeitada de stackoverflow.com devido a tópicos fora do tópico. Adicioná-la e a resposta, aqui, caso isso possa ajudar as pessoas no futuro.)

    
por André Christoffer Andersen 19.02.2017 / 20:30

1 resposta

1

Encontrou o seguinte na man expansão do sinalizador:

-u, --update

This forces rsync to skip any files which exist on the destination and have a modified time that is newer than the source file. (If an existing destination file has a modification time equal to the source file's, it will be updated if the sizes are different.)

link

Assim, o caso igual verifica o tamanho dos arquivos e os transfere apenas se forem diferentes. Estou bem com isso.

    
por 19.02.2017 / 20:30