[ClamAV] WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.sock

Tue, February 21, 2012 - 3 min read

ClamAV を Cron に登録するためのシェルスクリプトを作成して、確認のため実行したら、ウイルス定義のパターンファイル更新時にエラーが発生しました。

ちなみに、シェルスクリプトの内容は下記のような感じです。

/usr/local/scripts/clamav.sh

#!/bin/bash

logfile="/var/log/clamav/clamav_$(date +%Y%m%d%H%M).log"
update_logfile="/var/log/clamav/clamav_update.log"
mail_to="notice@localhost"
mail_from="[email protected]"

/usr/bin/freshclam --quiet -u root -l ${update_logfile} > /dev/null 2>&1
/usr/bin/clamscan -r -i --quiet -l ${logfile} \\
--exclude-dir="/sys" \\
/ > /dev/null 2>&1

if [ $? != 0 ]
then
  cat ${logfile} | mail -s "[ClamAV report] $(hostname)" ${mail_to} -- -f $mail_from
fi

エラー内容

WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.sock

警告が出たので /var/run/clamav/clamd.sock を確認してみるとありませんでした。

それもそのはず、clamd をデーモンで起動させていないので、freshclam がウイルス定義のパターンファイルを更新後、clamd に通知できないのが原因でした。

freshclam.conf ファイルの NotifyClamd の行をコメントアウトしてあげればOKです。

/etc/freshclam.conf

NotifyClamd /etc/clamd.conf

↓(コメントアウト)

#NotifyClamd /etc/clamd.conf

参考情報

/etc/freshclam.confで NotifyClamd /etc/clamd.conf と設定されている場合 freshclam はウイルス定義のパターンファイルを更新した後、clamd にその旨を通知しようとします しかしclamdが起動していない場合は、通知できず上記のエラーが出るようです

clamdデーモンを起動させない場合は、上記の設定を無効にします #NotifyClamd /etc/clamd.conf

もし clamdデーモンが起動していてエラーがでる場合は /tmp/clamd.sockが存在するか確認します clamdが起動していてsockファイルが存在しない場合

/etc/clamd.confで LocalSocket /tmp/clamd.sock #TCPSocket 3310 になっているか確認します

・引用元 質問掲示板 - CentOSで自宅サーバー構築

以上です。