J'utilise rsync pour sauvegarder un référentiel qui contient de nombreux fichiers gz, dont de nombreux nouveaux chaque jour. La sauvegarde rsync se déroule plus lentement qu'elle ne le devrait car ces fichiers gz ne sont pas construits avec l'option --rsyncable de gzip (ce qui rend les fichiers gz beaucoup plus «conviviaux pour rsync» sans augmenter significativement leur taille ou affecter leur compatibilité). Et je ne peux pas résoudre le problème au moment de la création car les fichiers sont générés par un script python (rdiff-backup) qui utilise le module gzip de python et cela ne prend pas en charge un équivalent de --rsyncable de gzip.
Donc, avant d'exécuter rsync, je peux identifier tout nouveau fichier gz dans les données source (c'est-à-dire nouveau depuis la dernière exécution de rsync). Maintenant, je veux «re-gzip» ces fichiers afin qu'ils soient compressés au format rsyncable. Ensuite, je peux exécuter rsync à partir de la source optimisée.
Je pense que cela signifie exécuter chaque fichier via gunzip puis gzip --rsyncable, mais je ne sais pas trop comment le faire d'une manière qui ne risque pas de perdre des données ou des métadonnées. Suggestions reçues avec reconnaissance.
--rsyncable
.
-a
drapeau. De plus, ma version de gzip n'a pas d' --rsyncable
indicateur, mais elle est livrée avec un programme appelé znew
qui pourrait probablement être utilisé pour ce dont vous avez besoin.
--rsyncable
n'aiderait pas. J'espérais une ligne de code ou un script court qui déballerait en toute sécurité une archive gz et la reconditionnerait en utilisant --rsyncable
. Mais c'est juste une question académique pour moi maintenant.
--rsyncable
devrait être de savoir si les fichiers sont modifiés entre les exécutions etrsync
tente d'envoyer les modifications. Les nouveaux fichiers ne se soucient pas s'ils sont synchronisables ou non, car ilsrsync
doivent quand même envoyer toutes les données. Les fichiers sont-ils modifiés entre les exécutions rsync?