Algo parecido com isto?
rsync /logs/*.$(date '+%Y%m%d').log ArchiveServer:/archive/ServerA/logs/$(date '+%Y')/$(date '+%m')/
Atualização:
Certo, então a data já está no nome do arquivo de log. Eu deveria ter lido mais devagar.
Eu não acho que você faria isso diretamente com o rsync, mas encerraria as coisas em um script. Se você quiser bater as coisas em uma primeira corrida, algo como:
for daysago in 'seq 0 90'
do
rsync /logs/*.$(date '+%Y%m%d' -d "$daysago days ago").log ArchiveServer:/archive/ServerA/logs/$(date '+%Y' -d "$daysago days ago")/$(date '+%m' -d "$daysago days ago")/
done
Você pode colocar um "eco" na frente do comando rsync no loop para ver se é isso que você quer.
O que você fizer irá incorporar esses elementos, embora outras pessoas sejam mais espertas e elegantes sobre o script de shell que eu.