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

Сканирование полной файловой системы параллельно с clamscan

Я еженедельно запускаю сканирование clamav на своих серверах. Есть один сервер с кластером raid6 с 30 ТБ дискового пространства, на котором сканирование занимает более 24 часов.

Так что мне интересно как я могу запустить clamscan для всей файловой системы, используя преимущества нескольких ядер сервера? Сервер имеет хорошие возможности ввода-вывода, и я хотел бы, чтобы сканирование проходило так быстро, как может работать оборудование.

Я знаю о --multiscan параметр clamdscan. Основная проблема с clamdscan заключается в том, что он не может обрабатывать файлы, clamav пользователь не может получить доступ, и, похоже, не рекомендуется запускать демон от имени пользователя root.

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

У вас есть два отдельных вопроса:

  1. Распараллелить clamdscan - помимо комбинирования --multiscan и --fdscan ты мало что можешь сделать. Кроме того, вы можете запустить несколько экземпляров clamscan в отдельные папки независимо от демона.
  2. Сканировать файлы, которые clamd нет доступа - это невозможно. clamd требует, по крайней мере, доступа для чтения к любым файлам, которые вы хотите сканировать и составлять отчет, и права на запись для любых файлов, которые вы хотите сканировать и очищать. Я бы запустил демон с доступом только для чтения и обрабатывал отчеты вручную. Если вы не уверены, что ClamAV сможет обрабатывать вредоносные файлы, вам следует использовать другой сканер.
  1. Лучшим способом было бы запустить несколько экземпляров clamsdcan, гарантируя, что все демоны имеют привязку к разным ядрам и все они используют разные физические устройства (то есть диски) и, что еще лучше, отдельные каналы шины. Ввод-вывод был бы узким местом в этой задаче.
  2. Убедитесь, что вы сканируете то, что вам действительно нужно. Сканирование архивов или образов дисков потребовало бы ресурсов ЦП, ввода-вывода и ОЗУ, поскольку процесс должен читать (ввод-вывод), распаковывать (ЦП, ОЗУ для сопоставления файлов, ввод-вывод для записи в кеш) и сканировать их после. Возможно, стоит исключить файлы ISO, файлы MKV, jpgs.
  3. Вы можете подумать о сканировании только недавно измененных файлов, потому что сканирование большого ISO, которое никто не меняет при каждом сканировании.