如何更新ClamAV病毒定义数据库?

如何通过终端更新Clam Antivirus?
我已经安装了clamav,但我想知道如何更新病毒数据库。

3据我所知,在Ubuntu中没有必要使用这个命令,Clam病毒数据库会自动更新。如果你执行它,你会收到一个错误信息,比如“错误:/var/log/clamav/freshclam.log被另一个进程锁定”。 - Savvas Radevic
7为了强制执行每天的更新,您可以停止服务并进行更新,然后重新启动它:$ service clamav-freshclam stop,然后:$ sudo freshclam,最后再次运行:$ service clamav-freshclam start - michael
@michael的评论应该是答案... - Chaim Eliyah
5个回答

要更新ClamAV数据库,请执行sudo freshclam命令。
NAME
       freshclam - update virus databases

SYNOPSIS
       freshclam [options]

DESCRIPTION
       freshclam is a virus database update tool for ClamAV.

离线更新时,您还可以直接从数据库下载病毒定义文件:maindaily,然后将它们放入/var/lib/clamav目录中(删除旧文件)。

1这个适用于Zorin OS7 Ultimate用户吗?谢谢。 - user267883
我的已经是最新的了,我觉得现在可能已经自动更新了吧? - Aquarius Power
错误:无法以追加模式打开/var/log/clamav/freshclam.log(请检查权限!)。 错误:内部日志记录器出现问题(UpdateLogFile = /var/log/clamav/freshclam.log)。 - Aaron Franke
1@AaronFranke,问题已解决。https://askubuntu.com/a/909276/118354 对我来说,问题是由于ClamAv的GUI界面打开导致的。sudo lsof /var/log/clamav/freshclam.log显示如此。 我使用sudo pkill -15 -x freshclam 杀掉了该进程。问题解决了。 - Satya Prakash

运行sudo apt-get install clamav
ClamAv安装完成后,您可以在Nautilus中设置一个脚本进行右键病毒扫描。
要更新病毒数据库,请打开终端并输入以下命令:
sudo freshclam

要自动化此更新,您可以设置一个cron任务。我将展示如何在每天早上8:57更新病毒数据库。首先,打开终端并切换到root用户。
sudo su

现在你需要修改root用户的crontab。
crontab -e

这将在nano文本编辑器中打开根crontab文件。添加以下行

57 08 * * * freshclam

将内容添加到crontab中,然后按下Ctrl+X退出。当提示保存文件时,请选择是。

3如果你把它放在根目录的crontab中,就不需要使用sudo - Pabi
4目前,clamav-freshclam 服务负责更新定义(至少从15.04开始,可能早在12.04)。要进行Nautilus集成,请安装 clamtk-nautilus(并重新启动Nautilus)。 - michael
2@michael 我同意,看看user846226的回答。似乎有一个进程/usr/bin/freshclam -d --foreground=true在运行,每小时更新一次。运行freshclam甚至会返回一个错误,因为freshclam的日志文件被锁定了。 - zonksoft
1@zonksoft 最新的ClamAV和Freshclam在Debian/Ubuntu下,进程会定期自动更新数据库,不再需要手动操作。 - Melroy van den Berg

编辑freshclam.conf文件并添加您希望进行的每日检查次数,这是正确的操作方式。
vim /etc/clamav/freshclam.conf
Checks 24
##Notify clamd to reload it self
NotifyClamd /etc/clamav/clamd.conf

哇!我不知道默认情况下它会每小时检查一次!对我来说,这似乎太频繁了... - Alexis Wilke
@AlexisWilke 应该注意到,这行并没有被启用——在配置文件中被注释了,但如果你愿意的话可以启用它。 - Numeri
@Numeri 在新安装的Ubuntu 16.04上,默认情况下可以看到Checks 24参数。 - Alexis Wilke
@AlexisWilke 我猜这就是我因为假设Ubuntu上的软件包与Manjaro相同而遭受的后果。(昨天在Manjaro 17.1上进行了全新安装。)我同意,每天24小时有点过头了。 - Numeri

如何更新clamtk(所有步骤)/ clamav(步骤1-3)

注意:在开始在终端中输入任何内容之前,请仔细阅读每一行,以了解您对系统所做的操作。

  1. 删除可能存在的糟糕的杀毒软件安装:

    sudo apt-get remove clamav clamtk freshclam
    sudo apt-get autoremove
    
  2. 重新安装杀毒软件

    sudo apt-get install clamav -y      # *(终端版本)*
    sudo apt-get install clamtk -y      # *(图形界面版本)*
    
  3. 更新杀毒软件数据库

    sudo freshclam                    # *(需要大约30分钟下载定义文件)*
    
  4. 配置杀毒软件并进行扫描:此示例仅使用clamtk

    clamtk                           # (打开图形界面)*
    

    在“设置”选项卡下切换所有网络选项

    1. 切换“代理”并输入http://127.0.0.1
    2. 切换/重新选择“无代理”(以使上述#1变灰)

    “更新助手”

    1. 切换“手动”更新选项,点击应用和“返回”
    2. 切换“自动”更新选项,点击应用和“返回”。现在您应该看到更新的定义数量

    “扫描目录”

    1. 切换您想要扫描的目录。对于系统扫描,我切换了整个系统(不仅仅是/root/usr)。
    2. 点击扫描,将出现一个进度框。
最后说明:输入命令clamav --help可以得到一些提示。使用-y与选择安装所有依赖包是相同的。如果-y引起问题,则排除该选项,并在提示时手动按下y键。
这就是我为了使clam工作所做的事情,也许是clamtk和clamav都存在的故障(两者都有问题)。希望这对其他人有所帮助!

在中国,伟大的防火墙会屏蔽一些网站,所以只能通过下载文件来使用。你可以尝试在freshclam.conf文件中将服务器设置为cn,但更新可能需要几天时间。直接下载可以获取最新的定义文件。