默认情况下,在 UNIX 机器安装上,我可以看到日志是通过 gzip 轮换的。
问题:为什么 UNIX 世界默认不使用 7z?它会比 gzip 更有效率..
我只是压缩了一个包含许多 HTML 文件的目录。
7z:1.8 MB
邮编: 440 MB
答案1
在 Unix 下,归档(将文件分组为一个实体)和压缩通常是在单独的步骤中完成的。
当您想要操作单个文件(这不会从归档中受益)时,这会提供更大的灵活性 - 考虑诸如gzip -cd mylog.gz | grep '^Oct.*error'
.实现同样的效果7z
会很尴尬。
7z
(and zip
、and rar
、and arj
、and...) 是碰巧压缩的存档器。它们不会取代传统的,gzip
因为它们没有相同的目的。
gzip
速度快、资源少、非常知名并且安装在大多数 Unix 系统上。如果您正在寻找更高性能的压缩机,请选择xz
。它提供的命令行界面与 LZMA 算法非常相似,gzip
但使用或多或少相同的 LZMA 算法,因此7z
您应该获得相似的压缩比。
1)上述管道非常常见,因此围绕gzip
工具存在许多包装器;经验丰富的用户可能会选择zgrep '^Oct.*error' mylog.gz
节省一些击键次数。
答案2
使用 logrotate,日志文件一次只能压缩一个文件(恕我直言,这是一个限制,实际上在实践中并不是一个问题),并且gzip
默认使用,很可能是由于历史原因,并且它尚未改变。您仍然可以通过该命令使用另一个压缩器compresscmd
。有关更多信息,请参阅 logrotate(8) 手册页。
将来,logrotate 可能会有不同的默认值。我认为当今最好的压缩机是xz
,但它仍然相当新。
如果您使用不同的日志轮换软件,请参阅其文档。