Je copie de nombreux fichiers qui ont changé d'un serveur à un autre à l'aide de rsync. Je sais que je peux utiliser l' -n
option pour faire un essai à sec, donc je peux voir quels fichiers ont été modifiés. Cependant, est-il possible d'obtenir rsync pour imprimer un diff du contenu du fichier qui a changé? J'aimerais voir ce qui se passe avant d'en faire une copie? Quelque chose que je peux enregistrer dans un fichier et l'appliquer avec diff (1) plus tard?
19
rsync --diff
deux ans plus tard ...rsync ne peut pas faire cela nativement, mais s'il y a une possibilité d'utiliser unisson, vous pouvez produire un format de style diff à partir de cela.
la source
Pour créer un patch:
Pour l'appliquer:
ou utilisez un script généré automatiquement:
Sources:
la source
Ce n'est pas possible nativement car rsync ne se soucie que des différences binaires entre les fichiers.
Vous pourrez peut-être l'écrire en utilisant la sortie de rsync. Mais ce serait hackish.
Je pense que c'est nativement possible avec Unison .
la source
Pourquoi ne pas simplement utiliser quelque chose comme diff (pour les fichiers texte) ou xdelta (pour les fichiers binaires) pour générer les différences? Pourquoi avez-vous besoin de retirer spécifiquement quelque chose de rsync?
la source
Pour développer la réponse de Kyle, cela automatise le processus. Notez qu'il est totalement non testé, probablement assez fragile, et peut supprimer votre ordinateur et tuer votre chien.
la source
L'algorithme rsync fonctionne en comparant des morceaux binaires du fichier. Une telle différence binaire n'est pas censée être imprimable. Il existe une commande appelée rdiff qui utilise l'algorithme rsync pour générer un diff binaire, mais je ne pense pas qu'elle serait utile pour ce que vous décrivez, elle est couramment utilisée pour implémenter des sauvegardes incrémentielles.
la source