我们有一台旧版 centos 5.11 服务器;文件系统是ext3,我们无法更改。
是否可以对单个文件(巨大的日志文件)进行实时压缩?
zram:我在仓库中找不到它......
可以使用 cloop 吗?
答案1
显然 cloop 设备是只读的无论如何,都需要构建一个自定义内核模块。
zram 仅在从版本 3.14 开始的标准内核中可用,因此 Centos 5.x 的标准内核版本 2.6.18 对于它来说太旧了。
这听起来很像XY问题:您可能应该确定生成巨大日志文件的程序,并询问处理它的方法。
对于巨型日志文件,更常见的解决方案是日志文件轮转:将日志文件的现有内容复制到其他地方,并在复制完成后立即截断活动日志文件。如果生成日志的程序fseek(file, 0L, SEEK_END)
在写入每个新日志条目之前执行 a 或等效操作,则可以毫无问题地截断日志。
但是,如果程序记住了日志文件中的最后写入位置,并假设该文件自上次写入操作以来未发生更改,并显式查找该位置,那么您将立即获得以下演示:疏任何符合 POSIX 标准的文件系统中的文件:被截断的部分会重新出现,并填充零字节...但这些字节不占用实际的磁盘空间!
通常,许多专为长期操作而设计的应用程序要么允许即时截断其日志文件,要么具有用于日志文件轮换的内置机制。例如,某些应用程序在收到特定信号时将关闭并重新打开其日志文件。
CentOS 5.x 甚至有一个logrotate
工具作为其标准配置的一部分:只需放入一个配置文件,标识要轮换的日志文件和所需的轮换时间表(每天、每周等),/etc/logrotate.d
它就会执行以下操作:工作。