Приведу пример скрипта для сканирования и email уведомлений при обнаружении зараженных файлов.
Подразумевается что ClamAV установлен и сервер может отправлять почтовые сообщения.
Содержимое скрипта:
#!/bin/bash LOGFILE="/var/log/clamav/clamav-$(date +'%Y-%m-%d').log"; EMAIL_MSG="Please see the log file attached"; EMAIL_FROM="test@ixnfo.com"; EMAIL_TO="test@ixnfo.com"; DIRTOSCAN="/var/www /var/vmail"; for S in ${DIRTOSCAN}; do DIRSIZE=$(du -sh "$S" 2>/dev/null | cut -f1); echo "Starting scan of "$S" directory. Directory size: "$DIRSIZE"."; clamscan -ri "$S" >> "$LOGFILE"; #clamscan -ri --remove "$S" >> "$LOGFILE"; #find /var/log/clamav/ -type f -mtime +30 -exec rm {} \; MALWARE=$(tail "$LOGFILE"|grep Infected|cut -d" " -f3); if [ "$MALWARE" -ne "0" ];then echo "$EMAIL_MSG"|mail -a "$LOGFILE" -s "Malware Found" -r "$EMAIL_FROM" "$EMAIL_TO"; fi done exit 0
Сделаем файл исполняемым:
chmod 0755 /root/scripts/clamscan.sh
При запуске скрипта выполнится сканирование указанных директорий /var/www и /var/vmail, сохранятся логи в /var/log/clamav/, если в логах будет встречаться слово «Infected», то файл логов будет отправлен на указанный email. Чтобы антивирус также удалял угрозы, добавим «—remove» как показано в закомментированной строке, также если не настроен lopgrotate для удаления файлов, то раскомментируем команду начинающуюся на «find», которая будет удалять файлы логов старше 30 дней.
Для автоматического запуска, например ежедневно в час ночи, добавим сроку ниже в /etc/crontab:
1 1 * * * root /root/scripts/clamscan.sh > /dev/null 2>&1
Смотрите также мои статьи:
Установка и настройка Postfix
Использование и настройка CRON
Установка и использование ClamAV антивируса
Как запустить ClamAV сканирование из командной строки на cPanel сервере