rsnapshot faz backups incrementais através do uso de hardlinks e rsync - se o arquivo for o mesmo da última vez que o backup foi feito correr, então é só hardlinks. Então, se você não alterasse nada e executasse o rsnapshot a cada hora durante três horas, teria três pastas:
hourly.0
hourly.1
hourly.2
Cada um parece conter um backup "completo", mas apenas uma cópia de cada arquivo residiria no disco. Isso significa que, se você excluir hora a hora.2, hora1 e hora.0 ainda conteriam todos os arquivos. Você pode definir a frequência de backup e o número de instantâneos.
Isso alcançaria seu primeiro objetivo, mas o sistema de arquivos de destino deve oferecer suporte a hardlinks para que isso funcione.
Uma alternativa para isso é usar o rsync + LVM no dispositivo de backup e tirar instantâneos periodicamente. Os instantâneos LVM são volumes "copy-on-write", onde permanecem idênticos ao original reutilizando os mesmos blocos que o volume instantâneo, a menos que os blocos sejam alterados, após o que o volume instantâneo armazena apenas os blocos diferentes. Portanto, ele pode ser dimensionado para corresponder à taxa de alteração do volume que está sendo capturada entre os backups.
A compactação seria boa, mas se você não quiser usar o btrfs, será necessário algum tipo de compactação do sistema de arquivos por meio de um loop ou fusível.