ClamAV Malformed database beheben

Es kann vorkommen das die verschiedenen Datenbanken vom Antivirus ClamAV nicht mehr gelesen werden können oder einfach defekt sind.

Dies zeichnet sich wie folgt ab:

Fehlermeldung

amavis[4698]: (04698-01) (!)run_av (ClamAV-clamscan) FAILED - unexpected exit 2, output="LibClamAV Error: Problem parsing database at line 1\nLibClamAV Error: Can't load /var/lib/clamav/javascript.ndb: Malformed database\nLibClamAV Error: cli_loaddbdir(): error loading database /var/lib/clamav/javascript.ndb\nERROR: Malformed database"

Fehlerbehebung

Grundsätzlich lässt sich der Fehler relativ leicht beheben, wir brauchen nur die neusten Datenbanken. Also alle Dienste abstellen, Datenbanken löschen und neu erstellen. Danach die Dienste wieder starten.

Vereinfacht Schritt für Schritt:

cd /var/lib
cp -R clamav/ /tmp/.
cd clamav
systemctl stop postfix
systemctl stop amavis
systemctl stop clamav-daemon.service
pkill clam
rm *.ndb
rm *.hdb
rm *.cdb
rm *.cvd
rm *.ldb
rm *.ign2
rm *.cld
rm *.hsb
rm *.yara
rm *.ftm
freshclam
systemctl start clamav-daemon.service
systemctl start amavis
systemctl start postfix
postqueue -f

Kürzer:

cp -R /var/lib/clamav /tmp/.$
systemctl stop postfix && systemctl stop amavis && systemctl stop clamav-daemon.service
pkill clam
find /var/lib/clamav/. -type f ! -name 'mirrors.dat' -delete
freshclam
systemctl start clamav-daemon.service && systemctl start amavis && systemctl start postfix
postqueue -f

Erklärung

Backup aller Datenbanken erstellen

cp -R /var/lib/clamav /tmp/.$

Alle betroffenen Dienste stoppen

systemctl stop postfix && systemctl stop amavis && systemctl stop clamav-daemon.service

Restlichen Prozesse von ClamAV entfernen

pkill clam

Alle Datenbanken löschen. Die Datei mirror.dat aber stehen lassen

find /var/lib/clamav/. -type f ! -name 'mirrors.dat' -delete

Datenbanken mit freshclam erneut herunterladen

freshclam

Alle betroffenen Dienste wieder starten

systemctl start clamav-daemon.service && systemctl start amavis && systemctl start postfix

Warteschlange der E-Mails abarbeiten

postqueue -f

Die mobile Version verlassen