Se você está apenas tentando reduzir o tráfego de rede, mas não se importa em desperdiçar espaço em disco local, uma nova solução é "espelhar" o backup localmente e usar o modo batch do rsync para enviar as diferenças ao remoto.
Livremente, você faria backups locais com
rsync --write-batch=foo -a /src/dir/ /localcopy/dir/
Isso cria um arquivo foo
com todas as alterações a serem feitas e um script de uma linha em foo.sh
para ser executado no remoto para interpretar o conteúdo. Copie ambos para o controle remoto e execute o script no controle remoto:
scp foo foo.sh remote:
ssh remote ./foo.sh /dir/
ou se preferir:
ssh remote rsync --read-batch=- -a /dir/ <foo
Você também pode ver a duplicidade do rsync, que criptografa os dados no controle remoto, para que você também precise roubar a chave de criptografia para explorar os dados.