GNU/Linux >> Tutoriels Linux >  >> Linux

Des transferts de fichiers plus intelligents que Rsync ?

Fermé . Cette question a besoin de détails ou de clarté. Il n'accepte pas de réponses actuellement.

Vous voulez améliorer cette question ? Ajoutez des détails et clarifiez le problème en modifiant ce message.

Fermé il y a 6 ans.


Améliorer cette question

J'ai un gros fichier (2-3 Go, format binaire, non documenté) que j'utilise sur deux ordinateurs différents (normalement je l'utilise sur un système de bureau mais quand je voyage je le mets sur mon portable). J'utilise rsync pour transférer ce fichier dans les deux sens.

Je fais de petites mises à jour de ce fichier de temps en temps, en changeant moins de 100 Ko. Cela se produit sur les deux systèmes.

Le problème avec rsync si je comprends bien, c'est que s'il pense qu'un fichier a changé entre la source et la destination, il transfère le fichier complet. Dans ma situation, cela ressemble à une grosse perte de temps lorsqu'une petite partie d'un fichier a été modifiée. J'envisage un protocole où les agents de transfert à la source et à la destination vérifient d'abord l'ensemble du fichier, puis comparent le résultat. Lorsqu'ils se rendent compte que la somme de contrôle pour l'ensemble du fichier est différente, ils divisent le fichier en deux parties, A et B et les additionnent séparément.

Aha, B est identique sur les deux machines, ignorons cette moitié. Maintenant, il divise A en A1 et A2. Ok, seul A2 a changé. Divisez A2 en A2I et A2II et comparez, etc. Faites-le de manière récursive jusqu'à ce qu'il ait trouvé, par exemple, trois parties de 1 Mo chacune qui diffèrent entre la source et la destination, puis transférez uniquement ces parties et insérez-les au bon endroit dans le fichier de destination. Aujourd'hui, avec des SSD rapides et des processeurs multicœurs, une telle parallélisation devrait être très efficace.

Donc ma question est, y a-t-il des outils qui fonctionnent comme ça (ou d'une autre manière que je ne pouvais pas imaginer mais avec un résultat similaire) disponibles aujourd'hui ?

Une demande de clarification a été postée. J'utilise principalement Mac, donc le système de fichiers est HFS +. En général, je démarre rsync comme ceci

rsync -av --delete --progress --stats - dans ce cas, j'utilise parfois SSH et parfois rsyncd. Quand j'utilise rsyncd, je le démarre comme ceci rsync --daemon --verbose --no-detach .

Deuxième précision :je demande soit un outil qui transfère simplement le delta pour un fichier qui existe à deux endroits avec de petites modifications et/ou si rsync le propose vraiment. Mon expérience avec rsync est qu'il transfère les fichiers dans leur intégralité (mais maintenant il y a une réponse qui explique cela :rsync a besoin d'un serveur rsync pour pouvoir transférer uniquement les deltas, sinon (par exemple, en utilisant ssh-shell) il transfère l'ensemble fichier cependant beaucoup a changé).

En relation :Quand utiliseriez-vous un descripteur de fichier supplémentaire ?

Réponse acceptée :

Rsync n'utilisera pas de deltas mais transmettra le fichier complet dans son intégralité s'il - en tant que processus unique - est responsable des fichiers source et de destination. Il peut transmettre des deltas lorsqu'un processus client et serveur distinct s'exécute sur les machines source et de destination.

La raison pour laquelle rsync n'enverra pas de deltas lorsqu'il s'agit du seul processus est que, pour déterminer s'il doit envoyer un delta, il doit lire les fichiers source et de destination. Au moment où c'est fait, il aurait tout aussi bien pu simplement copier le fichier directement.

Si vous utilisez une commande de cette forme, vous n'avez qu'un seul processus rsync :

rsync /path/to/local/file /network/path/to/remote/file

Si vous utilisez une commande de cette forme, vous avez deux processus rsync (un sur l'hôte local et un sur la télécommande) et les deltas peuvent être utilisés :

rsync /path/to/local/file remote_host:/path/to/remote/file

Linux
  1. Comparer les répertoires mais pas le contenu des fichiers ?

  2. rechercher et supprimer un fichier ou un dossier de plus de x jours

  3. fichiers rsync plus récents que 1 semaine

  4. L'algorithme de copie de fichiers Linux (Ubuntu) est-il meilleur que Windows 7 ?

  5. Supprimer gracieusement les fichiers de plus de 30 jours

RSync :Comment synchroniser dans les deux sens ?

Comment pouvons-nous stocker un mot de passe autre que du texte brut ?

Comment RSYNC un seul fichier?

Existe-t-il un moyen de reprendre un scp interrompu d'un fichier?

Reprendre le transfert d'un seul fichier par rsync

cp -L vs cp -H