в Разработки

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

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

Если вы занимаетесь администрированием, велика вероятность что рано или поздно встанет вопрос — «На клиентских машинах стоит антивирус 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).

Лицензия MIT //Полный текст

СкачатьGitHub

Бабахнуть комментарий

Комментарии

  1. Спасибо за nod32-update-mirror — очень выручает. Собственно по нему и вопросик. Почему-то версии обновлений для разных версий нода не одинаковые на данный момент ситуация такая:

    v3 12146 (20150825)
    v4 12153 (20150826)
    v5 12153 (20150826)
    v6 12153 (20150826)
    v7 12146 (20150825)
    v8 12151 (20150825)
    v9 12151 (20150825)

    Я тут на PHP еще скриптик написал для определения версий — вдруг пригодится:

    // Код был жестоко порезан, так как для этого лучше использовать тот же gist.github.com
    • Отвечаю — да черт его знает почему так. Скрипт зеркалит «как есть», проверяя лишь wget-ом на наличие «обновленности» файла на источнике. Скрипт для определения версий — дело хорошее, но осознанно отказался от зависимости в PHP для каких-либо операций. Оформи его как полагается, и поделись ссылкой — действительно, кому-то может и пригодится

  2. Подскажи пожалуйста по скрипту обновления Нод (nod32-update-mirror).
    После его работы создаются 5 папок (v4, v5. v6. v7 и v8), а также файлы вне этих папок. Так вот, обновляться нужно в соответствии с версией программы из соответствующей папки? Или указывать корень всех папок? Я не понял что за файлы вне папок, для чего они нужны.

    • Привет! Эти папки и файлы создаются в соответствии со структурой на офф. зеркалах. Указывать дополнительно ничего не надо, Nod32 сам всё делает :)