rsync
sempre classifica seus arquivos de origem, pois isso facilita muito a comparação da lista de arquivos no destino para localizar arquivos que foram removidos, novos arquivos que foram adicionados e arquivos que foram atualizados.
No caso extremo, você pode encontrar os arquivos mais recentes e executar rsync
com apenas um único arquivo de origem várias vezes; se isso é eficiente é duvidoso.
Você precisa decidir como selecionar quais diretórios sincronizar. Se você olhar apenas para o registro de data e hora do diretório, poderá perder arquivos dentro desse diretório que foram atualizados ou mesmo subdiretórios e arquivos dentro deles.
Se você realmente deseja apenas sincronizar arquivos recentes e não se preocupar com a exclusão de arquivos no destino que foram removidos da fonte, use algo como:
find topdir -mtime -7 -type f -print0 > /tmp/list-of-files
rsync -ptgo --files-from=/tmp/list-of-files --from0 ./ destinationdir/
Isso primeiro cria uma lista de arquivos com menos de sete dias e os armazena em um arquivo temporário, com terminação nula (para que nomes de arquivos com espaços e novas linhas incorporadas ainda funcionem corretamente). Observe que você provavelmente precisará encontrar um local seguro para colocar essa lista, pois colocá-lo em /tmp
abre você para problemas de segurança, especialmente com um nome fixo como acima.
Em seguida, diga rsync
para transferir esses arquivos, preservando as permissões, registros de data e hora, configurações de grupo e de usuário.