Isso depende da escolha do sistema de arquivos e de como o sistema de arquivos mantém essas informações. Qual sistema de arquivos você tem agora? Você pode mudá-lo, se necessário?
Se você tiver um sistema de arquivos tradicional (como UFS ou EXT), não haverá nenhum índice separado para registros de data e hora ou alterações. A única maneira de encontrar as mudanças é visitar cada inode e examinar o timestamp. Quando o sistema de arquivos é grande (> 10M inodes), vai demorar um pouco para consultar. Se os seus discos forem rápidos, você poderá melhorar um pouco as velocidades dividindo a pesquisa e executando vários segmentos. Se seus discos estão lentos ou já estão com os IOPs ligados, então vários segmentos podem não melhorar nada.
Outros sistemas de arquivos (como BTRFS ou ZFS) podem manter um registro de todas as alterações durante um período de tempo e podem transmitir essas alterações para um local de réplica. Você pode enviar as diferenças incrementais para o seu local de réplica rapidamente sem usar o rsync.
example of a directory tree is as follows:
Exceto por facilitar a divisão em vários comandos, a estrutura não é importante. Para um sistema de arquivos tradicional (e definitivamente para um cliente NFS), tudo o que você pode fazer é pesquisar todos os arquivos. Isso significa executar um ou mais processos find / rsync e esperar que ele termine.
my filesystem is NFS.
Você está usando o NFS atualmente para acessar algum outro sistema de arquivos. Se isso é tudo que você pode fazer, então você terá que visitar todos os arquivos.
Por outro lado, pode haver qualquer coisa que esteja servindo ao NFS. Se for um appliance netapp, ele pode enviar blocos alterados para outro netapp (supondo que você tenha outro netapp e as licenças corretas).
O Netapp tem uma API de fornecedor para coletar informações sobre blocos alterados (snapdiff), mas não está disponível para você.