Question rsync un fichier déjà compressé


rysnc -z aura-t-il un avantage de compression si le fichier d'entrée est déjà compressé? J'ai un grand fichier compressé de 100 Go à envoyer sur le réseau entre les serveurs et il a échoué de manière constante (rupture de tuyau) après différentes durées. Je me demande si je devrais essayer le drapeau -z.


4
2017-08-18 07:44


origine


Je pense que vous cherchiez le --partial option, qui permet la reprise du transfert, quel que soit le problème. - FauxFaux


Réponses:


Compresser en transit un fichier déjà compressé ne vaut généralement pas le temps CPU. Il y a des réserves. Lors de la comparaison de deux fichiers, l'utilisation de rsync avec compression peut accélérer la comparaison des hashes des données.

Si vous souhaitez uniquement synchroniser les versions compressées de fichiers volumineux sur plusieurs systèmes, vous pouvez rechercher certaines versions de gzip. Sur un système Ubuntu, je reçois:

$ gzip -h
Utilisation: gzip [OPTION] ... [FICHIER] ...
Compresse ou décompresse les fichiers (par défaut, compresse les fichiers en place).

Les arguments obligatoires pour les options longues sont également obligatoires pour les options courtes.

  -c, --stdout écrit sur la sortie standard, conserve les fichiers d'origine inchangés
  -d, --decompress décompresse
  -f, --force force le remplacement du fichier de sortie et compresse les liens
  -h, - aide à donner cette aide
  -l, --list liste le contenu du fichier compressé
  -L, --license licence de logiciel d'affichage
  -n, --no-name n'enregistre pas ou ne restaure pas le nom d'origine et l'horodatage
  -N, --name enregistrer ou restaurer le nom d'origine et l'horodatage
  -q, --quiet supprime tous les avertissements
  -r, --recursive fonctionne récursivement sur les répertoires
  -S, --suffix = SUF utilise le suffixe SUF sur les fichiers compressés
  -t, --test teste l'intégrité des fichiers compressés
  -v, --verbose en mode verbeux
  -V, --version affiche le numéro de version
  -1, --fast compresser plus vite
  -9, --best mieux compresser
    --rsyncable Créer une archive compatible rsync

Sans FILE ou FILE, lisez l'entrée standard.

Signaler les bogues à.

Remarquerez que --rsyncable option? Cela évite l'utilisation de la compression adaptative, de sorte que seules les petites parties du fichier compressé sont modifiées lorsqu'il n'y a qu'une petite modification du fichier source. Le reste des données binaires est inchangé pour que rsync n'ait pas besoin de retransmettre le tout. La page de manuel indique que cette option ne doit pas augmenter la taille du fichier compressé d'environ 1% par rapport à sans utiliser l'option, et que gunzip ne connaîtra pas la différence.

J'ai un fichier SQL de 468 Mo que j'ai compressé à 57 Mo avec le --rsyncable option. Je transfère ce fichier sur mon système local. Ensuite, j'ajoute un commentaire d'une ligne au fichier sql d'origine sur le système distant et recompresse avec l'option rsyncable.

$ rsync -avvz --progress -h fooboo: foo.sql.gz.
ouverture de la connexion avec ssh fooboo rsync --server --sender -vvlogDtprz. foo.sql.gz
recevoir la liste des fichiers ...
1 fichier à considérer
transmission delta activée
foo.sql.gz
      59,64 M 100% 43,22 Mo / s 0:00:01 (xfer # 1, to-check = 0/1)
total: correspondances = 7723 hash_hits = 9468 false_alarms = 0 données = 22366

envoyé 54.12K octets reçus 22.58K octets 17.05K octets / s
la taille totale est 59.64M accélération est 777.59

Pas mal. Rsync devait seulement transférer une petite quantité du nouveau fichier compressé.


8
2017-11-20 16:13



Ce serait bien de comparer ce que le transfert utiliserait sans --rsyncable option. - Kevin Cox


rsync ne rendra pas un fichier déjà compressé significativement plus petit pendant le transit.

Il est peu probable que vos transferts échoués soient corrigés en ajoutant le drapeau -z. Je suggère d'essayer de synchroniser le (s) fichier (s) non compressé (s). rsync sera alors compressé à la volée. Vous avez alors l'avantage que si le fichier source change et que vous deviez à nouveau synchroniser, seuls les octets modifiés seront transférés. Si vous modifiez un fichier compressé, rsync devra probablement le retransmettre dans son intégralité. Voir ici pour plus de détails:

http://beeznest.wordpress.com/2005/02/03/rsyncable-gzip/


2
2017-08-18 08:21





En utilisant rsync -z n'aura aucun avantage sur juste rsync en traitant avec un fichier qui a déjà été compressé en utilisant un bon format de compression. Cependant, vous pouvez envisager de diviser votre fichier compressé en morceaux plus petits, de sorte que vous puissiez le transmettre à l'aide de rsync.

Voici un guide pour linux: http://www.techiecorner.com/107/how-to-split-large-file-into-several-smaller-files-linux/ Et pour Windows: http://www.online-tech-tips.com/computer-tips/how-to-split-a-large-file-into-multiple-smaller-pieces/


2
2017-08-18 08:40