Rsync alterou apenas arquivos

14

É possível rsynctransferir todos os arquivos em um diretório que foram alterados ou foram criados? Não preciso de algo tão sofisticado quanto uma verificação de diferenças de CRC; arquivos com carimbos de data e hora diferentes e / ou tamanhos de arquivo contam como alterações.

Na página de manual, tenho a impressão de que isso deve ser possível, mas preciso de um pouco de orientação sobre qual conjunto de parâmetros passar rsync.

instanceofTom
fonte

Respostas:

19

Para sincronizar apenas dois diretórios:

$ rsync /source/path/* /dest/path/

Ou se você quiser fazer uma árvore inteira:

$ rsync -a /source/path/ /dest/path/

"-a" especifica o modo "arquivo morto", em que duplica a árvore o mais próximo possível.

Eu gosto de adicionar as bandeiras ve Plá, para que eu possa vê-lo funcionar:

$rsync -avP /source/path/ /dest/path/

"-v" ativa o modo detalhado, para que você possa ver o que está fazendo (lista os arquivos à medida que copiam) e "-P" permite o progresso, para que você possa ver quanto tempo está demorando para copiar cada arquivo (porcentagem de cópias, tempo restante, etc), e permite que você veja até onde está a cópia.

Majenko
fonte
3
... e talvez acrescentar a bandeira z à compressão utilização para a transferência
Linker3000
4
... se você está transferindo para um local remoto
Majenko
14

É assim que rsyncfunciona por padrão (pelo menos no Linux). Na página do manual :

O Rsync localiza arquivos que precisam ser transferidos usando um algoritmo de "verificação rápida" (por padrão) que procura por arquivos que tenham mudado de tamanho ou no horário da última modificação. Quaisquer alterações nos outros atributos preservados (conforme solicitado pelas opções) são feitas diretamente no arquivo de destino quando a verificação rápida indica que os dados do arquivo não precisam ser atualizados.

Rob H
fonte
Ah, eu me confundi ao interpretar mal a documentação. Obrigado :)
instanceofTom