#!/bin/bash LOGDIR="/var/log/clamav/scan/"; LOGFILE="kerodes_clamav-$(date +'%Y-%m-%d').log"; #DIRTOSCAN="/home/roger/Públic /home/roger/Baixades/targets"; #multiple folders separate by space DIRTOSCAN="/home/roger/Baixades/targets"; #multiple folders separate by space readonly TOKEN=""; readonly GOTIFY_SERVER="" LOG_PRESERVE_DAYS=30; GOTIFY_MESSAGE="Scan init: **"`date +"%d/%m/%Y %H:%M:%S"`"** \r" MALWARE_FOUND=false mkdir -p $LOGDIR for S in ${DIRTOSCAN}; do DIRSIZE=$(du -sh "$S" 2>/dev/null | cut -f1); echo "Starting a daily scan of "$S" directory. Amount of data to be scanned is "$DIRSIZE"."; clamscan -ri "$S" >> "$LOGDIR$LOGFILE"; echo "Scanned folder: "$S >> "$LOGDIR$LOGFILE"; # get the value of "Infected lines" MALWARE=$(tail "$LOGDIR$LOGFILE"|grep Infected|cut -d" " -f3); # if the value is not equal to zero, send an email with the log file attached if [ "$MALWARE" -ne "0" ];then GOTIFY_MESSAGE="${GOTIFY_MESSAGE} Found **$MALWARE** infected files into **$S** \r" MALWARE_FOUND=true else echo "[clamav] No infected files found." fi done if $MALWARE_FOUND then # send log to logs public archive LOG_URL=$(sh ./utils/logger.sh "$LOGDIR$LOGFILE") GOTIFY_MESSAGE="${GOTIFY_MESSAGE} Scan end: **"`date +"%d/%m/%Y %H:%M:%S"`"** \r" GOTIFY_MESSAGE="${GOTIFY_MESSAGE} [LogFile]($LOG_URL)" sh ./utils/gotifypush.sh "ClamAV Scan $(hostname)" "$GOTIFY_MESSAGE" 5 $TOKEN fi #clean old logs files find $LOGDIR -maxdepth 1 -mtime +$LOG_PRESERVE_DAYS -exec "rm" -R {} \; exit 0