Certifique-se de estar usando o rsync -z
para compactar pela rede.
Outras opções a serem consideradas são -H
(hardlinks) e -S
(arquivos esparsos).
Antes de executar seu rsync, faça uma versão com -nv
, que não faz
atualiza, mas mostra quais arquivos serão atualizados.
Fora da lista de arquivos, use seu conhecimento para corresponder onde um arquivo ausente pode já existir no controle remoto e, em seguida, faça o login no remoto e copie esses arquivos primeiro.
Por exemplo, -nv
pode mostrar atualizações necessárias para:
ALLLibs/LibA/LibA.2
ALLLibs/LibA/LibA.2/file1
mas se você sabe que é provavelmente uma cópia de ../LibA.1/file1
, então
escrever um script para criar e preencher o LibA.2 de LibA.1, e
execute-o no controle remoto. Pode ser tão simples quanto cp -rp
. Quando você
faça o rsync real, arquivos semelhantes já estarão lá e serão alterados
arquivos serão atualizados. Você precisará de --delete
para remover arquivos
que não deveria estar lá (tenha cuidado com esta opção: teste com -n
primeiro).
Tenha cuidado no seu comando de cópia no controle remoto: copiar um arquivo geralmente configura
um novo timestamp no novo arquivo. O rsync por padrão compara o tamanho e o registro de data e hora.
Se eles diferirem, o arquivo será atualizado. Use a opção rsync -c
para
checksum cada arquivo para ver se difere.