The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何重建 ClamAV 已毀損的資料庫

今天一早發現信箱裡連一封信都沒收到,感覺非常詭異,進入 Postfix 主機檢查後才發現原來 ClamAV 防毒引擎掛掉了,進一步查看 /var/log/clamav/clamav.log 紀錄發現出現了 ERROR: Malformed database 的錯誤,這時必須重建資料庫才能解決了,以下是重建的步驟。

首先,發生錯誤的訊息如下:

Fri Apr 16 11:28:33 2010 -> +++ Started at Fri Apr 16 11:28:33 2010
Fri Apr 16 11:28:33 2010 -> clamd daemon 0.92.1 (OS: linux-gnu, ARCH: i386, CPU: i486)
Fri Apr 16 11:28:33 2010 -> Log file size limit disabled.
Fri Apr 16 11:28:33 2010 -> Reading databases from /var/lib/clamav
Fri Apr 16 11:28:33 2010 -> Not loading PUA signatures.
Fri Apr 16 11:28:33 2010 -> ERROR: Malformed database

這時我進入 /var/lib/clamav 目錄查看有以下內容:

total 20
drwxr-xr-x 4 clamav clamav 4096 Apr 16 11:23 ./
drwxrwxrwt 4 root root 4096 Apr 16 11:40 ../
drwxr-xr-x 2 clamav clamav 4096 Apr 16 11:23 daily.inc/
drwxr-xr-x 2 clamav clamav 4096 Apr 16 01:32 main.inc/
-rw------- 1 clamav clamav 1872 Apr 16 10:33 mirrors.dat

由於資料庫已經毀損,所以我們可以將此目錄所有檔案刪除準備重建:

rm -rf /var/lib/clamav/*

然後我們重新下載/更新防毒資料庫,此時會將資料庫完整重建,且過程大約會花費 1 ~ 2 分鐘,這段時間將無法啟動 ClamAV 防毒引擎。

/usr/bin/freshclam

最後再啟動 ClamAV 即可恢復正常。