O rsync pode criar hardlinks para arquivos em outro diretório. Então, quando você faz backup para o diretório que contém a data atual em seu nome, você pode passar o argumento -link-dest apontando para o backup anterior. Como resultado, você terá dois diretórios idênticos (se não houver alterações entre backups) que ocupam espaço apenas para um.
Outra solução é chamada rdiff-backup. Ele usa o protocolo rsync e lida com incrementais para você. Ele usa alguns arquivos extras para armazenar o diff em versões mais antigas (sem hardlinks). Eu uso e funciona bem, mas quando se trata de restaurar versões antigas, é lento.