Как просканировать только файлы прошлых 24 часов с clamav

Ваша производительность звучит о праве. P812 является картой на 6 ГБ, и Вы получаете последовательную производительность на 4 ГБ в конфигурации RAID10. Довольно сильный, особенно только с одним корпусом и одной парой используемых каналов SAS. Это показывает, что оба канала на самом деле используются, иначе Ваша производительность была бы ближе к 375MB/s.

Для получения большего количества производительности Вы испытываете необходимость больше чем в одном корпусе D2700 и выполняете их прочь второй пары портов на карте P812. Настройте каждый корпус как RAID0 LUN и затем зеркально отразите их. Тем путем Ваше зеркальное отражение, ввод-вывод не будет спорить друг с другом и Вашей пропускной способностью, должно значительно увеличиться. Вы не можете закончить много 1GB/s хотя

Больший вопрос состоит в том, какой ввод-вывод Вы ожидаете, что эта система обработает? Вы говорите "большую производительность ввода-вывода", но существует несколько способов определить это. Вы, кажется, фокусируетесь на простой пропускной способности, но Ваш выбор дисков предполагает, что задержка является на самом деле главным беспокойством.

Я предложил бы характеризовать Вашу производительность хранилища через множество размеров доступа для получения лучшего ощущения его общей производительности. Если Вы знаете, какие виды диска передает Ваши высокие потребности приложения ввода-вывода, внимание особенно на те диапазоны. Также обратите внимание для чередования размера на наборах RAID и где повреждения раздела падают. Это - более обычно беспокойство SSD, но Вы, кажется, хотите макс. возможную производительность так дополнительные процентные пункты, которые Вы получаете для обеспечения Ваших блоков файловой системы, выравниваются с дорожками RAID, стоит заглянуть к.

Простой копии файла недостаточно для охарактеризования производительности системы хранения. Для этого Вам нужны реальные сравнительные тесты. Я особенно люблю IOZone (ссылка), но IOMeter (ссылка) имеет лучшее проникновение на рынок. Сфокусируйте свое тестирование на размерах данных, Вы, вероятно, будете работать с и размеры передачи ввода-вывода, которые Вы, вероятно, будете использовать. Может быть очень удивительно, как другое устройство хранения данных работает при работе с блоками 4 КБ и блоками 32 КБ.

2
задан 18 February 2013 в 14:43
3 ответа

В зависимости от того, сколько файлов действительно затронуто, я не думаю, что 2 часа - это столько времени для проверки на вирусы. Тем не мение, вы можете попытаться повысить скорость следующим образом:

Выведите результат find в файл вместо того, чтобы передавать его в xargs , а затем использовать clamscan с с опцией - file-list = FILE . Это, возможно, улучшит время выполнения, потому что clamav нужно будет запускать и инициализировать только один раз, а не несколько раз. Пожалуйста, оставьте комментарий и скажите, насколько это ускорило процесс, если вообще это ускорило.

Другой вариант (или дополнительный) - ограничить сканирование определенными уязвимыми типами файлов, но лично мне такой подход не нравится.

Это, возможно, улучшит время выполнения, потому что clamav нужно будет запускать и инициализировать только один раз, а не несколько раз. Пожалуйста, оставьте комментарий и скажите, насколько это ускорило процесс, если вообще это ускорило.

Другой вариант (или дополнительный) - ограничить сканирование определенными уязвимыми типами файлов, но лично мне такой подход не нравится.

Это, возможно, улучшит время выполнения, потому что clamav нужно будет запускать и инициализировать только один раз, а не несколько раз. Пожалуйста, оставьте комментарий и скажите, насколько это ускорило процесс, если вообще это ускорило.

Другой вариант (или дополнительный) - ограничить сканирование определенными уязвимыми типами файлов, но лично мне такой подход не нравится.

2
ответ дан 3 December 2019 в 08:54

Я наткнулся на эту страницу, когда искал сценарий сканирования моллюсков. Я последовал приведенному выше совету и заставил его работать с:

#!/usr/bin/bash
# Create Hourly Cron Job With Clamscan

# Directories to scan
scan_dir="/home"

# Temporary file
list_file=$(mktemp -t clamscan.XXXXXX) || exit 1

# Location of log file
log_file="/var/log/clamav/hourly_clamscan.log"

# Make list of new files
if [ -f  "$log_file" ]
then
        # use newer files then logfile
        find "$scan_dir" -type f -cnewer "$log_file" -fprint "$list_file"
else
        # scan last 60 minutes
        find "$scan_dir" -type f -cmin -60 -fprint "$list_file"
fi

if [ -s "$list_file" ]
then
        # Scan files and remove (--remove) infected
        clamscan -i -f "$list_file" --remove=yes > "$log_file"

        # If there were infected files detected, send email alert
        if [ `cat $log_file | grep Infected | grep -v 0 | wc -l` != 0 ]
        then
                HOSTNAME=`hostname`
                echo "$(egrep "FOUND" $log_file)" | mail -s "VIRUS PROBLEM on $HOSTNAME" -r     clam@nas.local you@yourhost.com
        fi
else
        # remove the empty file, contains no info
        rm -f "$list_file"
fi
exit

В моем случае это был почасовой сценарий, но он должен работать ежедневно (измените второе открытие).

6
ответ дан 3 December 2019 в 08:54

Я еще не тестировал это, но я планирую интегрировать мой запуск clamscan с моим резервным запуском. Моя утилита резервного копирования создает список файлов, измененных для выполнения инкрементного бэкапа, так зачем же перекомпилировать один и тот же список файлов дважды?

Я использую dirvish для создания моих бэкапов, в котором используется rsync внизу. В конце концов, я получаю log.bz2, который дает мне отчет обо всех файлах, сохраненных в резервной копии, включая список файлов, которые были сохранены.

Этот genclamfilelist.sh скрипт извлечет список файлов из log.bz2 последней резервной копии и распечатает его:

#!/bin/sh

AWK=/usr/bin/awk
BUNZIP2=/bin/bunzip2
HEAD=/usr/bin/head
HOSTNAME=/bin/hostname
LS=/bin/ls
SED=/bin/sed

SNAPSHOT_HOME=/path/to/dirvish/snapshots

   for vaultHome in ${SNAPSHOT_HOME}/*; do

      # vault naming convention: <hostname>-<sharename>
      vaultName="`echo ${vaultHome} | ${SED} -e 's/^.*\/\([^\/]\+\)$/\1/'`"
      vaultHost="`echo ${vaultName} | ${SED} -e 's/\([^\-]\+\)\-.*$/\1/'`"

      # only proceed if vault being considered is for the same host
      if [ "${vaultHost}" = "`${HOSTNAME}`" ]; then
         logfile="`${LS} -1t ${vaultHome}/20??????-???? \
                      | ${HEAD} -1 \
                      | ${SED} -e 's/^\(.*\)\:$/\1/'`/log.bz2"

         if [ -f ${logfile} ]; then
            ${BUNZIP2} -c ${logfile} | ${AWK} '
               /^$/ {
                  if (start) {
                     start=0
                  }
               }

               {
                  if (start) {
                     print $0
                  }
               }

               /^receiving\ file\ list\ \.\.\.\ done$/ {
                  start=1
               }' | ${SED} -e "s/^\(.*\)$/\/\1/"
         fi
         # else skip - no log file found, probably backup didn't run or failed
      fi
      # else skip - another vault
   done

exit 0

This /etc/cron. Скрипт cron d/clamav будет использовать список файлов:

# /etc/cron.d/clamav: crontab fragment for clamav
CLAMAV_FILELIST=/tmp/clamav_filelist_`/bin/hostname`.txt

# run every night
0 19 * * *     root      /usr/bin/test -f ${CLAMAV_FILELIST} && /usr/bin/clamscan --any-desired-options --file-list=${CLAMAV_FILELIST} && /bin/rm ${CLAMAV_FILELIST}

Так как я использую dirvish, я изменил его /etc/dirvish/dirvish-cronjob, чтобы вызвать первый скрипт для создания списка файлов для использования последним скриптом:

# ...
/usr/sbin/dirvish-expire --quiet && /usr/sbin/dirvish-runall --quiet rc=$?

# v--- BEGIN ADDING NEW LINES
touch /tmp/clamav_filelist_`hostname`.txt
chmod 400 /tmp/clamav_filelist_`hostname`.txt
/usr/local/bin/genclamfilelist.sh >> /tmp/clamav_filelist_`hostname`.txt
# ^--- END ADDING NEW LINES

umount /mnt/backup0 || rc=$?
# ...
0
ответ дан 3 December 2019 в 08:54

Теги

Похожие вопросы