This script scans a set of folders and reports back to an administrator if a threat is found.
If you dont got it already:
# apt-get update && apt-get install clamav clamav-freshclam s-nail
then create a script for daily scanning:
#vim /opt/clamav-daily.sh
#!/bin/bash
#
# ClamAV-daily.sh - Scans a set of folders and reports back to an administrator if a threat is found.
# 2018 ASBRA AB, Nimpen J. Nordström <j@asbra.nu>
### Check permissions & dependencies
[[ ${UID} -ne 0 ]] && { echo "You are not root!"; exit 1; }
[[ -z "$(which s-nail)" ]] && { echo "You are missing the s-nail package!"; exit 1; }
### Variables
DIRS="/tmp/virus";
EMAIL_SUBJECT="Virus/Malware found on Server 7"
EMAIL_MSG="Please see the log file attached.";
EMAIL_FROM="clamav-daily@asbra.nu";
EMAIL_TO="order@vasteraskopia.se";
LOGFILE="/var/log/clamav-$(date +'%Y-%m-%d').log";
### Function for sending mail/sms/wall or whatever you like
alert() {
#echo "${EMAIL_MSG}"|s-nail -a "${LOGFILE}" -s "${EMAIL_SUBJECT}" -r "${EMAIL_FROM}" "${EMAIL_TO}";
wall "$EMAIL_SUBJECT see ${LOGFILE}"
}
### Scan each directory one at a time
for DIR in ${DIRS} ; do
echo -e "\n----------- SCAN START ($(date)) -----------" >> ${LOGFILE}
echo "Scanning: ${DIR}.\n" >> ${LOGFILE}
clamscan --recursive --infected "${DIR}" >> "${LOGFILE}";
echo -e "\n----------- SCAN END -----------" >> ${LOGFILE}
### Did we get a positive..?
[[ "0" -ne $(tail "${LOGFILE}"|grep Infected|cut -d" " -f3) ]] && ERROR=1
done
### Send alert if positive
[[ -n "${ERROR}" ]] && alert
exit 0
