Скрипт по обновлению антивирусных баз NOD32 под Linux (PHP)

Материал из Wiki МИАЦ ВО
Версия от 16:12, 16 марта 2009; Misha (обсуждение | вклад) (Версии скрипта)
Перейти к навигации Перейти к поиску

Вот портировал скрипты по обновлению антивирусных баз NOD32 V2* и V3* в PHP.

Версии скрипта

Буду тут выкладывать описание версий с датами для более удобного отслеживания за изменениями

  1. Версия 1.5 от 16.03.2009 Теперь можно обновлять базы для NOD32 V4.
    1. Добавлены секции, которых не было в вервии V3 [SYSTEMSTATUS0], [SYSTEMSTATUS1],[SYSTEMSTATUS2],[SYSTEMSTATUS640],[SYSTEMSTATUS641],[SYSTEMSTATUS642],[SELFDEFENSE0],[SELFDEFENSE1],[SELFDEFENSE2],[SELFDEFENSE640],[SELFDEFENSE641],[SELFDEFENSE642]. Обновляется только файл секций section.php.
  2. Версия 1.4 от 21.01.2009
    1. Исправлена ошибка записи имени файла в создаваемой update.ver, если этого файла еще не было.
  3. Версия 1.3 от 16.01.2009
    1. Если при обновлении NOD32 V2 происходила ошибка, то она не сбрасывалась и для NOD32 V3
    2. Не правильно формировался блок [data0001] в файле update.ver в NOD32 V3, если в этой секции встречался знак =.
    3. Убрано отображение некоторых ненужных сообщений.
  4. Версия 1.2 от 2.12.2008
    1. Исправлено удаление файла, если он уже не нужен
  5. Версия 1.1 от 18.11.2008
    1. Первая версия.

Что умеет скрипт.

Умеет все тоже, что и скрипт на bash, только работает быстрее, один скрипт может обновлять обе версии и можно использовать на любой платформе (сам не пробовал) .

  1. Обновляет базы с официальных и бесплатных серверов NOD32 (для официальных серверов нужно задать имя и пароль для обновления).
  2. Обновляет сразу базы для V2 и V3, но может и отдельно.
  3. Если на сервере названия файлов не совпадают с локальными - не качает, а переименовывает файлы.
  4. Сам создает файл update.ver. Те при обновлении с зеркал обновляются только компоненты с более новыми версиями.
  5. Автоматически создает папки, нужные для работы программы, в том числе и для Web сервера.
  6. Создает папку на веб сервере с файлами обновления.
  7. При ошибке обновления восстанавливает базу в том виде, которая была до обновления.

Скрипт автоматически создает папки для временного хранения копий баз /var/lib/nod32/mirror_V2 и /var/lib/nod32/mirror_V3 и загружает туда файлы антивирусных баз. Если обновление прошло успешно, то переписывает базы в WEB директорию, а если произошла ошибка, то наоборот, восстанавливает базы, переписывая их из WEB директории в папку временного хранения.

Спасибо Kode - использовал его функции. Так как не очень большой спец в PHP, то прошу не пинать, а если можно то помочь доработать.

Из чего состоит

  1. update.php - Сам скрипт
  2. function.php - Файл функций
  3. section.php - Файл описания секций
  4. setup.php - Файл установок

Инсталяция

  1. Устанавливаем пакеты php-cli.*.rpm и php-rar*.rpm.
    1. Если нет пакета php-rar*.rpm, можно установить RAR для Linux.
  2. Выкачиваем архив nod_upd_php_v1.4.tar.gz и распаковываем в любой каталог, например, /etc/upd_prog/.
  3. Редактируем файл setup.php для каждого варианта антивируса - Устанавливаем:
    1. Адрес сервера, например ('host'=>'http://89.202.157.139/',)
    2. Web каталог для каждой версии баз, например ('www'=>'/var/www/nod32/',)
    3. Имя пользователя, например ('user'=>'EAV-06545664',) или ('user'=>' ',) - для бесплатных серверов
    4. Пароль, например ('password'=>'k3fp7ksv8e',) или ('password'=>' ',) - для бесплатных серверов
  4. Пробуем из под root запустить файл update.php.
  5. Теперь в crontab прописываем запуск скрипта
# Обновление баз NOD32*
00 09,15 * * * root /etc/upd_prog/update.php

и наслаждаемся автоматическим обновлением 2 раза в сутки

Настройка сервера Apache для доступа к базам по паролю