Je recherche un format de compression qui prend en charge la tail
modification. Cela signifie que vous n'avez pas besoin de lire l'intégralité du fichier pour obtenir les X derniers octets non compressés. Est-ce possible avec n'importe quel format comme bzip2, xz, lzma, etc.?
Une fois, j'ai codé quelque chose en utilisant gzip qui pourrait le faire. Fondamentalement, à un niveau très élevé, ce qu'il a fait, c'est cat plusieurs blocs gzip ensemble, puis j'ai eu un utilitaire qui pouvait chercher en arrière depuis la fin du fichier jusqu'au début du dernier bloc. Ces fichiers étaient entièrement lisibles par les utilitaires gzip standard, mais j'espère qu'il y a quelque chose d'un peu plus standardisé disponible.
Le but ultime pour cela est pour les fichiers journaux que je peux écrire compressés, puis pouvoir y tail
accéder (même lorsqu'ils n'ont pas été entièrement écrits, c'est-à-dire en streaming) sans avoir à attendre que tout soit lu sur le disque ou le réseau.
la source
FWIW: J'ai développé un outil de ligne de commande sur le code source de zlib zran.c qui crée des index pour les fichiers gzip: https://github.com/circulosmeos/gztool
Il peut faire une queue continue d'un fichier gzip avec
-T
option. Ou juste une queue du dernier contenu et arrêtez avec-t
(Beaucoup d'autres options disponibles).Notez que pour l'une de ces actions
gztool
, un fichier d'index entrelacé avec cette action sera créé.Les index peuvent être interrompus à tout moment et réutilisés et / ou complétés ultérieurement. Et comme
gztool
on peut simplement commander d'extraire des données de n'importe quel endroit du fichier et de créer l'index entrelacé avec cette action, il n'y a jamais de temps perdu lors de son utilisation.la source