30 votes

Gzip compatible avec Rsync

Je ne dois pas être le seul - je rsynchronise des fichiers .tar.gz et je remarque qu'à chaque fois le fichier complet est rsynchronisé au lieu des différences. En lisant, il semble qu'en 1999, quelqu'un ait créé un algorithme qui a résolu le problème. http://svana.org/kleptog/rgzip.html (seulement 5% des données nécessaires sont transférées)

Est-ce que cela a été fait depuis, comment créer des fichiers .tar.gz compatibles avec rsync ?

34voto

Incident Points 169

Mon gzip (sur ubuntu et fedora) a l'option --rsyncable. Donc créez les tarballs en utilisant :

tar -c whatever/ | gzip --rsyncable > file.tar.gz

13voto

Rich Apodaca Points 230

BeezNest a une assez bonne explication de la option rsyncable pour gzip . Dans le test de l'auteur, cette option a ajouté environ 1% à la taille du fichier, mais a permis à rsync de transférer les mises à jour dans un fichier gzippé avec une vitesse plus de 1 300 fois supérieure.

Pour les détails sanglants, voir cette discussion (plus précisément, la section 4.4.2), qu'ils citent. L'essentiel est le suivant :

La modification est assez simple :

  1. Une signature à roulement rapide est calculée pour une petite fenêtre autour du point actuel dans le fichier non compressé ;
  2. La compression du flux se déroule comme d'habitude ;
  3. lorsque la signature de roulement est égale à une valeur prédéterminée, les tables de compression sont remises à zéro et un jeton est émis indiquant que le début d'une nouvelle région de compression.

7voto

Weston Ganger Points 961

J'aime bien celui-ci parce que je voulais le tar.gz, pas seulement .gz.

GZIP='--rsyncable' tar cvzf bobsbackup.tar.gz /home/bob

4voto

David McGraw Points 3498

http://smackerelofopinion.blogspot.com/2009/07/rsyncable-gzip.html

gzip --rsyncable  # need two dashes for long options

3voto

Alok Points 726

Je sais que Ubuntu Linux applique un patch (fichier gzip) pour gzipper les sources afin de permettre une --rsyncable drapeau. Vous pouvez télécharger ce patch et l'utiliser vous-même, ou voir si votre distribution inclut le patch.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X