Eu uso o rsync com os seguintes flags facilmente memoráveis como 'glop' e 'trunc' e 'v'.
rsync -gloptrunc $srcdir $dstdir
Um breve guia:
- g - preserva as informações de propriedade do grupo
- l - copia links simbólicos como links simbólicos
- o - preserva as informações do proprietário
- p - preserva as permissões
- t - preserva os timestamps
- r - recurse pelos diretórios
- u - update, pule todos os arquivos mais recentes
- [n] - não, não faça isso, faça uma execução a seco
- c - soma de verificação, tentativa de somas de verificação em blocos de arquivos quando possível (*)
Nota: em sistemas de arquivos locais, isso é substituído e arquivos inteiros são copiados.
- v - verbose
Eu sempre uso o código acima para ter certeza de que funciona e, em seguida, removo o sinalizador 'n' que, quando estiver satisfeito com os resultados.
Os principais recursos das combinações acima:
- Eu o executo em ambas as direções entre dois (ou mais) servidores, sincronizando em ambas as direções. Você atualiza o que você acha que é o mestre no momento.
- Ele permite que seja o mestre, com a ressalva significativa de que, se você quiser excluir algo, você deve excluí-lo em ambos para ter certeza de que realmente desapareceu, caso contrário, ele volta. > li>
Eu uso isso para manter duas máquinas em sincronia ou para manter subdivisões em sincronia (como fazer backup em uma unidade USB).
Como um dos outros posts mencionados anteriormente, o 'checksum' pode ser forçado a OFF se você estiver lidando com drives locais.
Em alguns casos raros, precisei adicionar parâmetros adicionais para explicar as alterações nas contas de login em máquinas remotas, alterar as portas e até mesmo especificar onde o 'rsync' reside no host remoto ... mas elas não são diretamente aplicável à sua pergunta.