[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 になっているか確認します
以上です。