カテゴリー : ClamAV

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

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で自宅サーバー構築

以上です。