ClamAV - Reset Defs DB
Sometimes ClamAV will download a virus update, and the update will not download correctly. This causes an error in its checksum. If this happens, ClamAV usually goes down and the system suspends delivery. Downloading fresh definition files can correct this problem.
You will experience the following symptoms if ClamAV fails to correctly download a virus update:
The definitions are corrupt if in /var/log/zimbra.log:
- ClamAV isn't running
- postfix/qmgr errors out at delivery temporarily suspended
And in /opt/zimbra/log/clamd.log:
- There are log error messages, like malformed database
- zmclamdctl status shows clamd as down.
The following symptoms may occur if you stop & restart Zimbra services (using zmcontrol stop and zmcontrol start):
- Antivirus may fail to start with the error (among others) clamd failed to start
Note: The WARNING: Your ClamAV installation is OUTDATED! error may also appear, but this is not indicative of a corrupt clamd database. This error simply occurs because ClamAV has a more recent release available than the one that ships with Zimbra. Updating your ClamAV installation to a version not included with a released ZCS product is not recommended and is not supported. Zimbra updates the ClamAV engine to latest with every release of ZCS. Users who wish to upgrade ClamAV independently from ZCS at their own risk can find directions here: ClamAV - Updating Version Out of cycle updates RFE is Bug 15137
Note: ClamAV Virus definitions update automatically every 2h by default (zimbraVirusDefinitionsUpdateFrequency attribute).
To fix this issue, you can delete the definitions and try again:
su - zimbra mkdir /tmp/clamdb
(in versions prior to 5.0.3)
mv /opt/zimbra/clamav/db/* /tmp/clamdb
(in version 5.0.3 or later)
mv /opt/zimbra/data/clamav/db/* /tmp/clamdb
zmprov ms `zmhostname` +zimbraServiceEnabled antivirus /opt/zimbra/clamav/bin/freshclam --config-file=/opt/zimbra/conf/freshclam.conf zmantivirusctl stop zmantivirusctl start
Note: zmantivirusctl incorporates zmclamdctl/zmamavidsctl/zmmtaconfigctl though you can just restart ClamAV individually.
Verify by running:
/opt/zimbra/clamav/bin/clamscan -d /opt/zimbra/data/clamav/db/
In releases prior to 5.0.3, this command will be:
/opt/zimbra/clamav/bin/clamscan -d /opt/zimbra/clamav/db/