![限制扫描时的 ClamAV 资源或替代解决方案](https://linux22.com/image/695472/%E9%99%90%E5%88%B6%E6%89%AB%E6%8F%8F%E6%97%B6%E7%9A%84%20ClamAV%20%E8%B5%84%E6%BA%90%E6%88%96%E6%9B%BF%E4%BB%A3%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.png)
环境 Centos 6 Cpanel 32GB Ram 512gb SSD 驱动器/约使用了一半
负责管理服务器并安装了 ClamAV。使用 CRON 安排在凌晨 1 点进行扫描。我注意到主机上的站点停止响应。例如,响应缓慢或没有数据库连接。我检查了 htop,发现资源使用率很高。由于时间太晚,我决定让它运行,预计它很快就会完成。结果发现它早上 9 点仍在运行,并导致偶尔中断。
寻求解决方案的建议。要么限制资源使用,要么提供 Clam AV 的替代方案
我将详细说明这是一台 Cpanel 服务器。线程模型是被黑客入侵的 wordpress 网站并扫描 .php 文件以查找感染。我认为这使得扫描值得。
for i in `awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq`; do /usr/local/cpanel/3rdparty/bin/clamscan -i -r /home/$i 2>>/dev/null; done >> /root/infections&
这是为运行 ClamD 而创建的 CRON 作业。起初我意识到我同时安排了备份和 Clamd。然而,更改时间后我得到了相同的结果。
查看 htop,发现有多个 clamd 进程正在运行,并且它再次使服务器达到最大负荷。
CPanel 支持建议删除 cron 作业。有很多人讨论使用该服务,但读完所有内容后,我更加困惑了。
答案1
您没有告诉我们您是如何扫描文件的。您正在运行“预定”扫描,这暗示您正在运行 clamscan 或 clamdscan,但您没有向我们展示您正在使用的代码。实现这一点有很多糟糕的方法,只有少数几种好的方法。即使是好的方法,也可能相当耗费资源(适当使用 ionice 和 nice 可能会有所帮助)。
如果您对单个文件运行病毒扫描程序,它将花费大量时间和磁盘带宽来加载指纹数据(然后花很短的时间检查文件)。如果您正在使用 clamscan,请切换到 clamd + clamdscan。
切换到不同的 AV 并不能解决您的实施问题 - IME sophos 比 clamscan 更胜一筹,尽管 sophos 也可以配置为作为守护进程运行,并且代理可以向其提供文件进行检查,但 api 尚未发布,sophos 不会发送客户端。
此外,Linux 病毒非常少(并且没有活跃的病毒)。没有可以通过定期扫描合理解决的威胁模型。