Скрипт создания зеркала обновлений для Eset Nod32 на Linux
Внимание! Данный пост был опубликован более года назад и, возможно, уже утратил свою былую актуальность. Но это не точно.

Данная статья является копией публикации на хабре.

У этого поста есть продолжение. Пожалуйста, перейдите по этой ссылке.

Если вы занимаетесь администрированием, велика вероятность что рано или поздно встанет вопрос — «На клиентских машинах стоит антивирус Nod32, надо бы создать для них единое зеркало обновлений». И тут возможны несколько путей развития сюжета:

  1. «Сервер на Windows, денег достаточно». Тут всё довольно просто — покупаем лицензию, ставим нужный дистрибутив NOD32 на сервер, настраиваем, радуемся. Вариант более мифический, так как крайне редко, когда на IT «денег достаточно».
  2. «Сервер на Windows, денег не достаточно». Тут возможны варианты. Начиная от использования варезных лицензий, до ручного скриптинга и использования Linux-решений (cygwin в помощь).
  3. «Сервер на Linux». Деньги в этом случае особого значения просто не имеют. У нас есть руки, есть голова, и есть желание сделать всё довольно качественно и надежно.

Вот третий вариант мы сейчас и рассмотрим.

Установка

Скачиваем крайнюю версию и распаковываем:

$ cd /tmp
$ wget https://github.com/tarampampam/nod32-update-mirror/archive/master.zip
$ unzip master.zip; cd ./nod32-update-mirror-master/

Переносим набор скриптов в директорию недоступную “извне”, но доступную для пользователя, который будет его запускать:

$ mv -f ./nod32upd/ /home/

Переходим в новое расположение скриптов и выполняем их настройку:

$ cd /home/nod32upd/
$ nano ./settings.cfg

Даем права на запуск скриптов:

$ chmod +x ./*.sh

Проверяем наличие unrar, если планируем обновляться с официальных зеркал Eset NOD32:

$ type -P unrar

Выполняем пробный запуск:

$ ./update.sh

Настройка

Актуальные параметры настройки смотрите в README.md файле репозитрия. Обновлять данные в нескольких местах - делл не благодарное, поэтому - просто внимательнее читай readme файл.

Особенности

  • Если произошла ошибка при обновлении с сервера, который указан, например, в updServer0 - производится попытка обновиться с сервера, указанного в updServer1, updServer2..updServer10;
  • Скачивает только обновленные файлы обновлений (проверка выполняется с помощью wget --timestamping);
  • Умеет поддерживать в актуальном состоянии только лишь файл update.ver, не скачивая сами файлы обновлений (при этом зеркало работает, но загрузка происходит не с вашего сервера, а с сервера-источника обновлений);
  • В комплекте идет заготовка для веб-интерфейса зеркала обновления (директория ./webface).

Ссылки