无法在 CentOS7 上使用 freshclam 更新 ClamAV 中的数据库

无法在 CentOS7 上使用 freshclam 更新 ClamAV 中的数据库

我正在 Azure 上运行 CentOS freash,并通过运行以下命令在其上安装了 ClamAV:

  yum install -y epel-release
  yum install -y clamav

安装后,我运行以下命令来更新各种数据库:freshclam

我得到以下输出(输出的最后部分):

Time: 0.1s, ETA: 0.0s [=============================>] 657.84KiB/657.84KiB
Downloading database patch # 25864...
Time: 0.2s, ETA: 0.0s [=============================>] 992.77KiB/992.77KiB
Downloading database patch # 25865...
Time: 0.1s, ETA: 0.0s [=============================>] 903.99KiB/903.99KiB
Testing database: '/var/lib/clamav/tmp.628c5/clamav-a8e48a60b669aa6a0211c18d734f61be.tmp-daily.cld'     ...
ERROR: Database load killed by signal 9
ERROR: Database test FAILED.
ERROR: Unexpected error when attempting to update database: daily
WARNING: fc_update_databases: fc_update_database failed: Test failed (8)
ERROR: Database update process failed: Test failed (8)
ERROR: Update failed.

我觉得很奇怪,没有其他人使用该发行版遇到相同的问题,因为我没有任何超级具体的步骤,只是按照页面中的步骤进行操作。希望有人能够帮助我...

答案1

我的环境中有类似的操作系统,我通过运行以下命令使一切正常工作:

    yum install -y -q  epel-release
    yum install -y -q clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

    setsebool -P antivirus_can_scan_system 1

    sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
    sed -i -e "s/^Example/#Example/" /etc/freshclam.conf

    sed -i 's/^#LocalSocket \/run\/clamd.scan\/clamd.soc/LocalSocket \/run\/clamd.scan\/clamd.soc/' /etc/clamd.d/scan.conf

    freshclam

    systemctl enable clamav-freshclam.service
    systemctl start clamav-freshclam.service
    systemctl enable clamd@scan
    systemctl start clamd@scan

注意:如果freshclam仍然无法更新数据库,可能是您的主机没有足够的内存(尝试使用至少 1.5GB 的内存)

答案2

威联通

...“错误:数据库加载被信号 9 终止”或“错误:无法加载新数据库”,这是由 NAS 中的内存规格引起的,该内存不够大,无法提取不断增长的杀毒软件大小现在的定义。

我不确定 NAS 如何应用于不同的 Linux 发行版和安装,但这个问题来自于可用 RAM 不足。

这个 GitHub 线程也描述了相同的基本问题:

建议:在发行说明中添加注释,大致如下:

“对于想要使用clamav防病毒软件并使用该命令更新病毒定义数据的用户freshclam(大多数人都会这样做),为了使防病毒更新正常工作而不会出现错误/失败,您需要的最低系统 RAM 为 512MB (Ubuntu 16.04)和 2GB (CentOS 8),具体取决于 Linux 发行版以及您启用的其他服务,ClamAV 使用大量 RAM。”

我使用过systemctl stop服务器安装后安装的大多数服务,例如 Apache、MySQL、Postfix 等。

您可以通过以下方式获取服务列表:

systemctl list-units --type=service --state=active

然后,假设nginx, httpd, named, mariadb, postfix,dovecot类似:

systemctl stop nginx httpd named mariadb postfix dovecot

freshclam; wait

systemctl stop nginx httpd named mariadb postfix dovecot

尝试一下,看看是否有效。如今,ClamAV 可能需要大量 RAM,但这可能仍然不够。

相关内容