与 clamscan 并行扫描整个文件系统

与 clamscan 并行扫描整个文件系统

我每周都会在我的服务器上运行一次 clamav 扫描。有一台服务器拥有 30TB 磁盘空间的 raid6 集群,扫描需要 24 小时以上才能完成。

所以我想知道如何才能在整个文件系统上运行 clamscan,充分利用服务器的多个核心?服务器具有良好的输入/输出能力,我希望扫描能够以硬件所能达到的速度进行。

我知道--multiscan的参数clamdscan。我对 clamdscan 的主要问题是它无法处理用户clamav无法访问的文件,并且似乎不鼓励以 root 身份运行守护进程。

我看到有些人正在使用平行线来实现这一点,但我找不到真正扫描整个文件系统的干净命令。

答案1

您有两个不同的问题:

  1. 并行化clamdscan- 除了合并之外--multiscan--fdscan您几乎无能为力。或者,您可以clamscan独立于守护程序在单独的文件夹上运行多个实例。
  2. 扫描clamd无法访问的文件 - 这是不可能的。clamd至少需要对要扫描和报告的任何文件具有读取权限,以及对要扫描和清理的任何文件具有写入权限。我将仅以读取权限运行守护进程并手动处理报告。如果您不相信 ClamAV 能够处理恶意文件,则应使用其他扫描仪。

答案2

  1. 最好的方法是运行多个 clamsdcan 实例,确保所有守护进程都与不同的核心有亲和力,并且它们都使用不同的物理设备(即磁盘),甚至更好 - 单独的总线通道。 I/O 将成为此任务的瓶颈。
  2. 确保扫描的内容是您真正需要的。扫描存档或磁盘映像会消耗大量的 CPU、I/O 和 RAM,因为该过程应该读取 (i/o)、解包 (CPU、RAM 以映射文件、I/O 以写入缓存) 并随后扫描它们。排除 ISO 文件、MKV 文件和 jpg 可能是个好主意。
  3. 您可能想考虑仅扫描最近更改的文件,因为扫描的是大型 ISO,因此每次扫描时没有人会进行更改。

相关内容