Cherche logiciel de comparaison de fichier mode bloc - rdiff!

Cherche logiciel de comparaison de fichier mode bloc - rdiff! - Logiciels - Linux et OS Alternatifs

Marsh Posté le 30-10-2014 à 09:11:01    

salut! [:dawa]
 
apres pas mal de recherches infructueuses, je n'ai plus d'autre solution que de jetter une bouteille a la mer :)
il y a une quinzaine d annee, je me souviens avoir utilise un logiciel pour faire de la copie de fichiers dans un simili mode bloc, et surtout offline. mais je ne retrouve plus le nom :/
je precise que tout se fait offline, sinon j'aurais utilise rsync.  [:hydrogen]  
 
de ce que je me souviens, le fonctionnement est a peu pres le suivant:
 
1. sur la destination : analyse du fichier destination. creation d'un fichier avec un genre d'index de hash par "sous bloc" du fichier.
2. sur la source : copie de l'index (pas par le soft), comparaison avec le fichier source. le soft genere un fichier qui contient l'ensemble des "sous blocs" differents de la destination.
3. sur la destination : copie des "sous blocs" (pas par le soft). applique les modifications au fichier destination pour qu'il soit a l'identique du fichier source.
 
je mets "sous bloc" entre guillemets car la taille du bloc est soit a l appreciation du soft, soit force par l'utilisateur. donc pas un bloc dans le sens systeme de fichier.
l'utilisation est pour la "synchro" de fichier volumineux (200GiB+) dans lesquels seulement quelques centaines de MiB ont change.
 
merci pour le coup de main!  :hello:
 
edit : résolüte avec rdiff sur github (post 0.9.7). merci!

Message cité 1 fois
Message édité par Hydrogen le 10-11-2014 à 19:02:22
Reply

Marsh Posté le 30-10-2014 à 09:11:01   

Reply

Marsh Posté le 30-10-2014 à 10:24:28    

Hydrogen a écrit :

je precise que tout se fait offline, sinon j'aurais utilise rsync.  [:hydrogen]  


Je ne comprends pas le problème de rsync avec ta contrainte offline.
On peut l'utiliser pour synchroniser des dossiers entre eux.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 30-10-2014 à 10:44:55    

je n'ai pas de possibilite d'avoir de connectivite directe entre les deux machines 'source' et 'destination', donc pas possible d'utiliser rsync avec l'option --block-size=
ici il s'agit de synchroniser un fichier de 200GiB, mais de n'envoyer que les differences, a la mode par2/multipar.

Reply

Marsh Posté le 30-10-2014 à 10:59:05    

Hydrogen a écrit :

je n'ai pas de possibilite d'avoir de connectivite directe entre les deux machines 'source' et 'destination', donc pas possible d'utiliser rsync avec l'option --block-size=
ici il s'agit de synchroniser un fichier de 200GiB, mais de n'envoyer que les differences, a la mode par2/multipar.


OK, c'était pas mentionné dans ton post initial.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 30-10-2014 à 11:07:09    

Salut, ça serait plus facile de passer par un disque dur USB pour copier ton fichier de 200 Go d'une machine à l'autre si tu ne peux pas le faire en réseau.
 
Je ne connais pas de logiciel qui fasse ce que tu demandes, mais tu es très patient, je pense que tu peux le faire manuellement:
 
Sur la source, tu "splittes" ton gros fichier en plusieurs petits morceaux (ex: 1 Mo).
Ensuite, tu fais un md5sum sur chaque fichier de 1 Mo.
 
Coté destination, tu fais la même opération.
 
Ensuite, tu compares les 2 fichiers MD5 (qui sont au format texte), et tu vois quels morceaux sont différents des deux cotés.
 
Tu copies les morceaux différents sur la machine destination.
Enfin, tu reconstitues le fichier de 200 Go en concaténant les morceux de 1 Mo.
 
Bon, personnellement, je ne jouerais pas à ça, mais c'est pour expliquer le principe  :hello:

Reply

Marsh Posté le 30-10-2014 à 11:18:15    

justement... je cherche un soft qui fait exactement ca de facon automatisee et il existe. manuellement ce n'est juste pas raisonnable. et c'est parce que ce n'est pas raisonnable que je cherche a automatiser :jap:  
pour la copie usb, je veux bien mais c'est entre lagos (ng) et paris. et je ne rentre pas souvent.
envoyer le fichier ca me prend plus de deux semaines... !

Reply

Marsh Posté le 30-10-2014 à 12:00:47    

Rdiff fait exactement ce que tu veux normalement.
 
Edit : de mémoire rdiff marche fichier par fichier, si tu veux automatiser ca sur une arborescence base toi sur les scripts dispo sur la page suivante : http://users.softlab.ece.ntua.gr/~ [...] rsync.html


Message édité par ccp6128 le 30-10-2014 à 12:02:04
Reply

Marsh Posté le 30-10-2014 à 14:43:24    

merci beaucoup, je vais essayer tout ca! :)
edit: package fait pour synology :) maintenant ca mouline  :sleep:


Message édité par Hydrogen le 30-10-2014 à 21:56:28
Reply

Marsh Posté le 01-11-2014 à 13:26:47    

ouch, ca consomme trop de mémoire :cry:
la commation plafonne direct au taquet de la mémoire quand le calcul du delta se fait. même avec 8GiB de ram ca coince :/

 

rdiff: ERROR: (rs_job_complete) loadsig job failed: out of memory
rdiff: ERROR: out of memory


Message édité par Hydrogen le 02-11-2014 à 01:41:54
Reply

Marsh Posté le 06-11-2014 à 19:23:50    

le problème de mémoire est rencontré avec le "block-size" par défaut. je suis passé à un bs à 1MiB et plus de soucis (et surtout ça suffit largement, je passe de 1.1GiB à 3MiB pour le fichier de signature!).

 

la version actuelle de rdiff a un bug qui fait que ca plante pour tout fichier de plus de 4GiB.
https://bugs.debian.org/cgi-bin/bug [...] bug=355178

 

(ce qui me fait plus peur c'est l'utilisation de md4 [:totoz])

  

rdiff: (rs_patch_s_copying) got 16000 bytes back from basis callback
rdiff: (rs_patch_s_copying) copy 16000 bytes from basis at offset 3850015722
rdiff: (rs_patch_s_copying) copy callback returned OK
rdiff: (rs_patch_s_copying) got 16000 bytes back from basis callback
rdiff: (rs_patch_s_copying) copy 982 bytes from basis at offset 3850031722
rdiff: (rs_patch_s_copying) copy callback returned OK
rdiff: (rs_patch_s_copying) got 982 bytes back from basis callback
rdiff: ERROR: (rs_job_iter) internal error: job made no progress [orig_in=7706, orig_out=16000, final_in=7706, final_out=16000]
rdiff: ERROR: library internal error

 

edit: tentative avec xdelta mais ça ne compile par sur arm :/
edit: je tente le coup avec une nouvelle version sur github estampillée 1.0.0PRE https://github.com/dropbox/librsync . elle a l'air de compiler tous les patchs, dont celui de la limite de taille de fichiers.


Message édité par Hydrogen le 06-11-2014 à 22:35:00
Reply

Marsh Posté le 06-11-2014 à 19:23:50   

Reply

Marsh Posté le 10-11-2014 à 19:00:18    

la version de rdiff sur github résout le problème de la limitation à 4GiB :jap:

Reply

Marsh Posté le 19-11-2014 à 15:40:54    

Oh, je repasse ici par accident, souci de cookies qui me déloggue régulièrement du forum et ne m'a pas fait voir que le topic était encore actif.
 
Désolé de ne pas avoir vu tes soucis plus tôt vu que j'avais rencontré le souci et résolu de la même façon que tu l'as fait.

Reply

Marsh Posté le 20-11-2014 à 19:28:23    

pas de quoi être désolé, au contraire merci! :D
d'ailleurs j'ai compilé le rdiff pour syno ici si ça peut intéresser qqn. :)


Message édité par Hydrogen le 20-11-2014 à 19:29:03
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed