Você está certo, o rsync é perfeito para isso. Use --itemize-changes
(vulgo -i). Certifique-se de que você pode executar isso como root em ambos os lados (ou algum outro usuário com acesso total à máquina):
rsync -ani --delete / root@remotehost:/
-
-a
é para arquivar e basicamente faz com que o rsync faça uma cópia exata (além de alguns casos envolvendo links) -
-n
é para execução a seco e significa que nada será realmente alterado (Este é IMPORTANTE!:)) -
-i
é para alterações de itemize e gera um formato simples de entender, uma vez obtido, mostrando todos os arquivos que precisam ser atualizados (a sintaxe é explicada integralmente na página man sob a ajuda detalhada para isso gatilho). -
--delete
faz o rsync excluir arquivos que existem no destino, mas não na origem.
Se você quiser excluir determinados caminhos, use comandos como --exclude /var
. Os padrões de exclusão são relativos ao diretório de origem (que, nesse caso, é /, portanto, são efetivamente absolutos).