Назад | Перейти на главную страницу

Можно ли проверить прогресс текущего сканирования clamAV?

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

AFAICT, это невозможно - вы можете либо распечатать все отсканированные файлы на консоли, либо просто распечатать зараженные файлы. В конце ClamAV распечатает сводку. Мне не удалось найти способ получать текущую статистику.

Единственный способ, которым я мог себе это представить, был бы:

  1. Сначала рекурсивно подсчитайте все файлы в каталоге (ах), которые будут сканироваться ClamAV, а затем сохраните это число в переменной.
  2. Запустите ClamAV, завернутый в сценарий, который подсчитывает количество выходных строк и сравнивает это с подсчетом из шага 1.

Однажды я попытался сделать это быстро, но не смог заставить его работать достаточно хорошо для автоматизированной работы Дженкинса, которую я настроил ... поэтому в конце концов я отказался от этого. Извини :(

Это старая ветка с ответами, но я хотел попробовать идею geerlingguy (я фанат :-)), и в случае, если другие в конечном итоге здесь, предоставят кодифицированное решение.

Если вы хотите просканировать папку фу например, вы начинаете сканирование с:

clamscan -r foo | tee /tmp/scan.log

или

clamscan -r foo > /tmp/scan.log

Затем вы можете запустить следующий сценарий с аргументами сканируемой папки и файла журнала, в этом примере

status.sh foo /tmp/scan.log

Где содержимое файла status.sh:

#!/bin/bash
folder=$1
log=$2
numFiles=`find $folder -type f | wc -l` 
echo $numFiles files to be processed

numProcessed=`wc -l $log | awk '{print $1'}`
percent=`echo "scale=2;$numProcessed*100./$numFiles." | bc`
echo $percent percent complete.

При необходимости можно объединить запуск сканирования и проверку статуса в один сценарий.