是否有 clamscan 返回的错误和警告消息列表?

是否有 clamscan 返回的错误和警告消息列表?

我正在围绕 clamscan 可执行文件的系统调用编写 Java 包装器。

我一直试图找到 clamscan 给出的错误和警告消息列表,但没有成功。

例如,我见过 clamscan 发出警告,例如......

“警告:***病毒库已超过7天!”

...以及诸如...之类的错误

“LibClamAV 错误:cli_load():无法打开文件 /var/lib/clamav/bytecode.cvd”

有没有办法获得所有可能的警告和错误的列表?

答案1

任何地方都没有硬编码的警告或错误消息列表 - 这些消息基本上只是打印语句。可能显示的消息列表(及其内容)可能因版本而异,并且取决于 ClamAV 的配置方式。

如果您确实想构建一个列表,那么可以从在代码中搜索cli_warnmsgor开始cli_errmsg。例如:https://github.com/Cisco-Talos/clamav-devel/search?q=cli_errmsg&unscoped_q=cli_errmsg

stderr您可以采取的另一种方法是在运行后进行检查clamscan,并可能据此采取一些操作, 而不是将代码与这些消息的内容紧密耦合。freshclam做了类似的事情(参见:https://github.com/Cisco-Talos/clamav-devel/blob/5087673200af439707dab8ae44c7b567cdabc567/freshclam/manager.c#L1426)。

确定是否发生错误的最可靠方法是仅检查 的返回值clamscan,尽管从阅读手册页来看,只有 3 种可能的返回代码(0:未发现病毒;1:发现病毒;2:发生错误)。也许将此与上面的方法结合起来足以让您的包装器指示扫描是否成功,并提供警告/错误,以便用户有希望确定出了什么问题。

相关内容