/root/bin/clamav-run.sh
#!/bin/bash
PATH=/usr/bin:/bin
TITLE=""
TO="To: root\n"
SENDMAIL=/usr/sbin/sendmail
CLAMDSCAN=/usr/bin/clamdscan
#SENDMAIL=echo
# EXCLUDES=( /proc /sys /run /dev );
# OPT_EXCLUDES=( $(for e in "${EXCLUDES[@]}"; do echo "--excludes-dir=${e}"; done) );
# OPT_MULTI_THREAD=
OPT_MULTI_THREAD=--multiscan
VIRUS_MOVE_PATH=/var/log/clamav/virus
function err_print {
local msg="${@}";
printf "\x1b[31mclamav-run.sh: ${msg}\x1b[0m\n";
}
if [ ! -d ${OPT_VIRUS_MOVE_PATH} ]; then
mkdir -p ${OPT_VIRUS_MOVE_PATH};
fi
# update definition
# freshclam > /dev/null
# full scan (multi-thread)
# ${CLAMDSCAN} --multiscan --verbose --move=/var/log/clamav/virus /
# full scan (single-thread)
${CLAMDSCAN} ${OPT_MULTI_THREAD} --verbose --move=${VIRUS_MOVE_PATH} /
STATUS=$?;
# report
case ${STATUS} in
0 )
err_print "virus not found"
TITLE="Subject: ClamAV scan OK"
;;
1 )
err_print "virus found (status = ${STATUS})"
TITLE="Subject: ClamAV scan NG"
;;
* )
err_print "error occured (status = ${STATUS})"
TITLE="Subject: ClamAV scan Error"
;;
esac
echo -e ${TO}${TITLE} | cat - /var/log/clamav/clamav.log | ${SENDMAIL} -t
unset err_print