在tar压缩文件中逐行解析压缩后的日志文件

我的日志文件具有以下结构:

/var/log/2013-12-24.tar.gz

该文件具有:

2013-12-24/{00,01,02...23}.log.gz

档案

我需要使用Python解析这些文件,

无需提取磁盘或内存上的任何文件

有什么建议 ?


桃花长相依
浏览 220回答 2
2回答

胡子哥哥

使用,这是不可能的.tar.gz,这就是原因。为了创建.tar.gz文件,您必须tar先创建单个.tar文件,然后再创建gzip结果。.tar可以在不读取整个内容的情况下扫描文件,但只有在tar归档成员相对较大的情况下,它才能很好地工作。这是因为tar没有任何标头在一个紧凑的位置列出所有成员。每个存档成员都有512字节的描述符,比显示下一个描述符的位置还要多。使用大型归档成员,您可以相对快速地在磁盘上找到任意成员的内容,但是您将不得不lseek()多次。但是,一旦您gzip在上进行了应用.tar,从根本上来说,就不可能迅速获得存档中所有成员的列表,而实际上无法解压缩其内容的可能性就大大降低了。您甚至不得不解压缩整个存档,甚至只是简单地获取其所有成员的列表。请注意,流行.tar.bz2或.tar.xz格式存在完全相同的问题。您可以使用zip格式对其进行修复。zip之所以具有.tar.gz更大的优势,是因为它确实具有紧凑的索引,该索引在一个位置列出了所有存档成员,并且它允许快速读取该列表并仅提取您需要的文件,而不必提取(压缩).tar.gz遭受苦难的整个存档。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python