Estou copiando muitos arquivos que foram alterados de um servidor para outro usando o rsync. Eu sei que posso usar a -n
opção para executar uma execução a seco, para que eu possa ver quais arquivos foram alterados. No entanto, é possível fazer com que o rsync imprima uma diff do conteúdo do arquivo alterado? Gostaria de ver o que está acontecendo antes de fazer uma cópia? Algo que eu posso salvar em um arquivo e aplicar com o diff (1) mais tarde?
19
rsync --diff
dois anos depois ...O rsync não pode fazer isso de forma nativa, mas se houver a possibilidade de usar uníssono, você poderá produzir um formato de estilo diff a partir disso.
fonte
Para criar patch:
Para aplicá-lo:
ou use o script gerado automaticamente:
Fontes:
fonte
Não é possível nativamente porque o rsync se preocupa apenas com diferenças binárias entre arquivos.
Você pode criar um script usando a saída do rsync. Mas seria uma loucura.
Eu acredito que é nativamente possível com a Unison .
fonte
Por que não usar apenas algo como diff (para arquivos de texto) ou xdelta (para arquivos binários) para gerar as diferenças? Por que você precisa obter algo específico do rsync?
fonte
Para expandir a resposta de Kyle, isso automatiza o processo. Observe que é totalmente não testado, provavelmente muito frágil, e pode excluir seu computador e matar seu cão.
fonte
O algoritmo rsync funciona comparando pedaços binários do arquivo. Esse diff binário não deve ser impresso. Existe um comando chamado rdiff que usa o algoritmo rsync para gerar um diff binário, mas não acho que seria útil para o que você descreve, é comumente usado para implementar backups incrementais.
fonte