2016-08-28 4 views
0

В настоящее время я пишу скрипт, который проверяет USB-палочки на наличие вредоносных файлов, которые работают на малине Pi.ClamAV копировать проверенные не зараженные файлы

Для AV Проверка I'm с помощью clamscan так:

clamscan --infected --allmatch --detect-pua --block-macros --recursive --block-encrypted $start_directory 

где $ start_directory является точка монтирования USB-Drive.

У clamscan есть опция --move для зараженных файлов. Но как я могу автоматически копировать файлы, которые clamscan тестирует как OK в нужный каталог?

+0

ли в «$ start_directory "содержат только файлы? – sjsam

+0

содержит файлы и папки неизвестного формата, вот почему я использовал ** - рекурсивную ** опцию –

ответ

1

Я не думаю, что есть вариант clamscan NEGATE, чтобы вы могли сделать что-то вроде

declare -a infectedlist=($(clamscan --infected --allmatch --detect-pua --block-macros --recursive --block-encrypted "$start_directory")) 
shopt -s globstar 
for i in "$start_directory"/** 
do 
[[ ! -f "$i" ]] && continue # If not a file then next item !! 
found=0 
for j in "${infectedlist[@]}" 
do 
    [[ "$i" = "$j" ]] && found=1 
done 
[ "$found" -eq 0 ] && mv "$i" /desired/directory 
done 
shopt -u globstar #unset globstar 

Как заметка на полях двойной кавычки переменных т.е. сделать "$start_directory" to avoid word splitting.

+2

Спасибо, работал как шарм –

+0

@MartinFischer: Добавлено '[[! -f "$ i"]] && продолжить, чтобы пропустить некоторую нежелательную обработку. – sjsam

Смежные вопросы