Supondo que os registros de data e hora de modificação em seus arquivos de origem são legítimos (e estão sendo atualizados quando os arquivos são modificados), acho que faz sentido adicionar o argumento -t
para sincronizar os horários. Quoth a página rsync
man :
-t, --times
This tells rsync to transfer modification times along with the files and update them on the remote system. Note that if this option is not used, the optimization that excludes files that have not been modified cannot be effective; in other words, a missing -t or -a will cause the next transfer to behave as if it used -I, causing all files to be updated (though rsync's delta-transfer algorithm will make the update fairly efficient if the files haven't actually changed, you're much better off using -t).
Basicamente, você está perdendo a otimização, na qual rsync
pode usar o registro de data e hora de modificação do arquivo como sentinela para indicar que o arquivo foi modificado. Se os carimbos de data e hora de modificação divergirem entre o emissor e o receptor, o algoritmo de cópia delta será usado e o conteúdo do arquivo será digitalizado. Com um corpo tão grande quanto você está falando, será um longo processo de digitalização, como você está vendo.
Se os carimbos de hora de modificação dos seus arquivos não estiverem sendo atualizados quando os arquivos forem alterados (por algum motivo bizarro), isso não será efetivo e você terá que fazer varreduras completas de arquivos. Se você precisar que os registros de data e hora de modificação dos arquivos remotos reflitam quando eles foram sincronizados, em vez do registro de data e hora da modificação dos arquivos de origem, isso também não será uma solução viável.
Eu suspeito que esta opção irá radicalmente acelerar suas sincronizações.