76

How can I update Clam Antivirus via the terminal?

I already have installed clamav, but I want to know how can I update the virus database.

3
  • 3
    AFAIK, there is no need to use this command in Ubuntu, the clam virus database is automatically updated. If you execute it you'll get an error such as ERROR: /var/log/clamav/freshclam.log is locked by another process Oct 8, 2013 at 22:24
  • 7
    To force the daily update to happen on-demand, you can stop the service & update & then restart it: $ service clamav-freshclam stop and then: $ sudo freshclam and again, $ service clamav-freshclam start
    – michael
    Dec 16, 2015 at 7:01
  • @michael's comment should be the answer... Apr 28, 2021 at 18:40

5 Answers 5

72

To update the ClamAV database do sudo freshclam.

NAME
       freshclam - update virus databases

SYNOPSIS
       freshclam [options]

DESCRIPTION
       freshclam is a virus database update tool for ClamAV.

For offline update, you can also directly download virus definition from database: main, daily and then put them into /var/lib/clamav (remove old files).

4
  • 1
    Will this work for Zorin OS7 Ultimate users? Thanks
    – user267883
    Apr 11, 2014 at 15:33
  • mine was up to date, I think it has become automatic now? Mar 21, 2017 at 3:24
  • ERROR: Can't open /var/log/clamav/freshclam.log in append mode (check permissions!). ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log). Dec 14, 2017 at 4:27
  • 1
    @AaronFranke, this has solved the problem. askubuntu.com/a/909276/118354 For me, it was due to GUI of ClamAv was open. sudo lsof /var/log/clamav/freshclam.log said that. I killed the process using sudo pkill -15 -x freshclam . Problem solved. Jul 30, 2018 at 7:13
20

Run sudo apt-get install clamav.

Once ClamAv is installed you can set up a script for right click virus scanning in Nautilus.

To update the virus database, open a terminal and enter the following command:

sudo freshclam

To automate this update you can set up a cron job. I'll show how to update the virus database every day at 8:57 AM. First, open the terminal and su to root.

sudo su

Now you need to modify the crontab for the root user.

crontab -e

This opens the root crontab file in the nano text editor. Add the following line

57 08 * * * freshclam

to the crontab and then hit Ctrl+X to exit. Answer yes when prompted to save the file.

4
  • 3
    If you put it in the root crontab, you don't need sudo.
    – Pabi
    Nov 6, 2014 at 8:53
  • 4
    Presently, the clamav-freshclam service takes care of updating the definitions (as of 15.04 for sure, possibly as early as 12.04). For Nautilus integration, install clamtk-nautilus (and restart nautilus)
    – michael
    Dec 16, 2015 at 7:08
  • 2
    @michael I agree, see user846226's answer. It seems that there is a process /usr/bin/freshclam -d --foreground=true is running that updates once an hour. Running freshclam even returns an error because the freshclam's logfile is locked.
    – zonksoft
    Apr 19, 2020 at 12:28
  • 1
    @zonksoft Indeed with the latest versions of ClamAV and Freshclam under Debian/Ubuntu the process automatically updates the database periodically. No need to do anything manual anymore. Apr 2, 2023 at 20:40
12

The right way to go is to edit freshclam.conf and add the number of dayly Checks you want

vim /etc/clamav/freshclam.conf
Checks 24
##Notify clamd to reload it self
NotifyClamd /etc/clamav/clamd.conf
4
  • Wow! I was not aware that it would check once per hour by default! It seems like a lot to me... Jan 28, 2016 at 7:28
  • @AlexisWilke It should be noted that it doesn't -- that line is commented out in the config file, but can be enabled if you wish
    – Numeri
    Sep 9, 2018 at 2:37
  • @Numeri A fresh install and I see the Checks 24 parameter by default on Ubuntu 16.04... Sep 9, 2018 at 15:25
  • @AlexisWilke I guess that's what I get for assuming the package on Ubuntu would be the same as Manjaro. (Did a fresh install yesterday on Manjaro 17.1.) I agree, 24/day is a little over the top
    – Numeri
    Sep 9, 2018 at 22:55
4

How to update clamtk (all steps) / clamav (steps 1-3)

NOTE: Read each line before you willy nilly start typing things in Terminal to understand what you are doing to the system.

  1. Remove potentially bad AV installations:

    sudo apt-get remove clamav clamtk freshclam
    sudo apt-get autoremove
    
  2. Reinstall AV

    sudo apt-get install clamav -y      # *(Terminal Version)*
    sudo apt-get install clamtk -y      # *(GUI version)*
    
  3. Update AV Database

    sudo freshclam                    # *(takes ~30 minutes to download definitions)*
    
  4. Configure AV & Scan: This example uses only clamtk

    clamtk                           # (Opens GUI)*
    

    toggle all options beneath settings tab "Network"

    1. toggle "proxy" and type http://127.0.0.1
    2. toggle / reselect "No Proxy" (to gray out #1 above)

    "Update Assistant"

    1. toggle "manual" update option and click apply and "back"
    2. toggle "automatic" update option and click apply and "back". You should now see updated definition count

    "Scan a Directory"

    1. toggle desired directory you want scanned. For system scan, I toggled the entire system (not just /root or /usr).
    2. Click scan and a progress box will appear.

Final Note: typing the phrase clamav --help gives some hints. -y is the same thing as saying yes to installing all dependencies for package. If -y causes issues then exclude and manually press y key when prompted.

This is what I had to do to get clam working, perhaps a glitch for both clamtk and clamav (problem with both). Hope this helps someone else!

1

in China, the great firewall blocks, so can use only the download files. you can try setting the sever to cn in the freshclam.conf file, but the update will take days. direct download works to get the definitions.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .