在使用 ClamAV 进行文件扫描时,日志中经常会出现如下警告信息:
pgsqlCopyEditLibClamAV Warning: cli_scanxz: decompress file size exceeds limits - only scanning 105906176 bytes
这条信息可以分解为以下几个部分:
- LibClamAV Warning: 表示这是 ClamAV 核心库发出的警告,并不会中止扫描过程。
- cli_scanxz: 表明这条信息来源于处理
.xz格式压缩文件的扫描模块。 - decompress file size exceeds limits: 指出解压后的文件大小超过了当前设置的最大扫描限制。
- only scanning 105906176 bytes: 意味着只会扫描解压后的前 105,906,176 字节(约 101 MB),其余部分不会被扫描。
产生原因
ClamAV 为了防止扫描过程中消耗过多系统资源,默认对解压后文件的大小设定了限制。这主要是出于性能和安全考虑,避免在面对恶意构造的巨型压缩文件时导致系统资源耗尽。
是否需要调整
若需要完整扫描所有内容,可在 clamd.conf 配置文件中通过修改如下参数进行调整:
confCopyEditMaxFileSize 500M
MaxScanSize 1G
需要注意,增加这些值将导致更高的内存和 CPU 占用,并可能导致扫描耗时显著增加。实际应用中,通常只在对安全性要求极高的环境或需要扫描大文件的情况下才会考虑修改。
总结
当 ClamAV 遇到解压后超出大小限制的文件时,会发出警告但继续进行扫描,仅扫描指定限制内的部分数据。这种机制是一种平衡性能与安全性的默认保护措施。在大多数场景下,可保持默认配置,无需额外干预。