rsync alterna para comparar apenas os timestamps

3

Existe uma maneira de permitir que rsync apenas compare registros de data e hora de arquivos e ignore seu conteúdo? Isso inclui ignorar o tamanho do arquivo. Apenas o timestamp. Nada além do timestamp.

    
por Majenko 20.03.2011 / 21:33

1 resposta

5

O rsync não pode comparar arquivos usando apenas o registro de data e hora. Ele sempre sempre compara o tamanho do arquivo, e se você especificar -c , ele também comparará a soma de verificação do arquivo.

O ponto principal do rsync é fazer com que uma árvore de arquivos coincida com outra. Se um arquivo em uma árvore tiver um tamanho diferente para o mesmo arquivo na outra árvore, eles devem, logicamente, diferir. Então o rsync irá copiá-lo. Independentemente disso.

Se você deseja copiar os arquivos da maneira que deseja, terá que adotar um método diferente usando diferentes ferramentas.

Se você quiser apenas copiar arquivos que foram alterados desde uma data conhecida (digamos, a última vez que você copiou os arquivos), você pode usar o sinalizador -cnewer do find. O pequeno script a seguir encontrará arquivos que foram alterados desde a última vez em que foi executado:

find /path/to/files -cnewer /tmp/lastSync
touch /tmp/lastSync

O -cnewer compara a hora modificada do arquivo com a do arquivo especificado (/ tmp / lastSync neste exemplo):

-cnewer file
   File's  status  was last changed more recently than file was modified.  
   If file is a symbolic link and the -H option or the -L option is in 
   effect, the status-change time of the file it points to is always used.

O comando touch atualizará o timestamp de / tmp / lastSync para refletir o fato de que o script acabou de ser executado para que as execuções subsequentes do script usem a hora atual como base de tempo.

A saída do comando find pode então ser usada para especificar os arquivos a serem copiados para o destino usando qualquer método que você queira (cp, scp, whatever).

    
por 20.03.2011 / 21:38

Tags