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:
- Mails gehen nur noch langsam durchs System da mit einem alternativen Antivirus gescannt wird.
- Der Server hat massiv mehr Load als sonst – +800%
- Fehlermeldungen im Mail-Log
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