Поставил тут на выходных ваш скрипт, вроде всё замечательно скачивается. Но вот только столкнулся с непонятной проблемой. Первый раз скрипт долго, но всё скачал. Антивири схавали обновление без проблем. Запустился скрипт по расписанию и на этом всё. Что-то он скачал но обновиться антивирусы уже не могут. Выдают что не найден файл. Запускаю заново обновление - ничего не качает, говорит всё есть и актуально. Но антивири ругаются. Удаляю всё в Eset_upd, *.ver, файлы, запускаю скрипт. Быренько что-то дакачивает и в итоге всё обновляется без проблем. И опять до нового выполнения по рассписанию. Так и не вкурил в чём проблема. В итоге сделал в расписание удаление файлов перед запуском скрипта. Криво но работает.
шустрый скрипт скрипт зеркала NOD32
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
шустрый скрипт скрипт зеркала NOD32
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- рядовой
- Сообщения: 46
- Зарегистрирован: 2014-08-20 2:41:55
шустрый скрипт скрипт зеркала NOD32
У меня стоит раз в 4 часа, но 3 базы выкачивает одну за другой. еще неделю назад работало как часы, или они поменяли user agent. В старом скрипте он качает через агента мозилла же?depositaire писал(а): ↑2025-02-24 11:11:11Сейчас стоит на 2 раза в день. В 12 ночи и дня. А когда настраивал доходило до 10 в час поэтому улетал отдыхать сразу. По сути минимально через 4-5 часов имеет смысл ставить.
-
- мл. сержант
- Сообщения: 114
- Зарегистрирован: 2020-02-24 8:40:47
шустрый скрипт скрипт зеркала NOD32
depositaire, сейчас почищу конфиги и выложу новую версию. Пока новую версию писал,, заметил несколько багов в старой версии, которые могут влиять на обновление и которые уже нет смысла исправлять. Изначально модификация update.ver под локальное хранилище было неправильным шагом с моей стороны, что вело к "накоплению" путей, если обновляться с таких же скриптов
-
- мл. сержант
- Сообщения: 114
- Зарегистрирован: 2020-02-24 8:40:47
шустрый скрипт скрипт зеркала NOD32
Всем привет, обновил версию скрипта на гитхабе https://github.com/Scorpikor/pynod-mirror-tool
Файл конфигурации nod32ms.conf и файл nginx изменились и для своего сервера необходимо настроить их под себя. Версия пока еще тестируется и даже найден один баг, сегодня его исправлю, но если не пытаться закачать не существующие версии, то должно работать
Файл конфигурации nod32ms.conf и файл nginx изменились и для своего сервера необходимо настроить их под себя. Версия пока еще тестируется и даже найден один баг, сегодня его исправлю, но если не пытаться закачать не существующие версии, то должно работать
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
шустрый скрипт скрипт зеркала NOD32
А это дважды зачем:
official_servers_update = 0
official_servers_update = 0
# Неработающие версии:
# v5 v9 v11 v12 v13
эм? А как же без них то?
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
шустрый скрипт скрипт зеркала NOD32
а под апача нет случаем?
-
- мл. сержант
- Сообщения: 114
- Зарегистрирован: 2020-02-24 8:40:47
шустрый скрипт скрипт зеркала NOD32
depositaire,
- верссии v3- v8 обновляются из баз v3
- версии v10-v11 обновляются из баз v10
собственно в конфиге nginx на гитхабе это и реализовано
Первая фраза относится к комментарию, вторая является параметром.depositaire писал(а): ↑2025-02-25 9:31:46А это дважды зачем:
official_servers_update = 0
official_servers_update = 0
Код: Выделить всё
# Если обновляемся с других не официальных зеркал, то выставляем official_servers_update = 0
official_servers_update = 0
Тут уже обговаривали эту тему:depositaire писал(а): ↑2025-02-25 9:31:46# Неработающие версии:
# v5 v9 v11 v12 v13
эм? А как же без них то?
- верссии v3- v8 обновляются из баз v3
- версии v10-v11 обновляются из баз v10
собственно в конфиге nginx на гитхабе это и реализовано
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
-
- мл. сержант
- Сообщения: 114
- Зарегистрирован: 2020-02-24 8:40:47
шустрый скрипт скрипт зеркала NOD32
Сам апачем не пользуюсь, но чат гпт подсказал такой конфиг - не фак что он рабочий полностью, но есть с чего начать.
GPTchat писал(а): Для Apache (.htaccess или httpd.conf) аналогичный конфиг можно реализовать с помощью RewriteCond, RewriteRule и SetEnvIf.
Конфигурация для Apache (.htaccess)
Код: Выделить всё
# Включаем модуль перезаписи (если не включен в httpd.conf) RewriteEngine On # === Определение версии клиента по User-Agent === SetEnvIfNoCase User-Agent ".*(EEA|EES|EFSW|EMSX|ESFW)+\s+Update.*BPC\s+([0-9]+)\..*" ver=ep$2 SetEnvIfNoCase User-Agent ".*Update.*BPC\s+([0-9]+)\..*" ver=v$1 # === Логика для update.ver === RewriteCond %{ENV:ver} ^ep[6-9]$ [OR] RewriteCond %{ENV:ver} ^ep1[0-9]$ RewriteRule ^(dll/)?update\.ver$ /eset_upd/%{ENV:ver}/$1update.ver [L] RewriteCond %{ENV:ver} ^v[3-8]$ RewriteRule ^(.*) /eset_upd/v3/dll/update.ver [L] RewriteCond %{ENV:ver} ^v1[0-1]$ RewriteRule ^(.*) /eset_upd/v10/dll/update.ver [L] RewriteCond %{ENV:ver} ^v1[2-9]$ RewriteRule ^(.*) /eset_upd/%{ENV:ver}/dll/update.ver [L] # === Логика для всех остальных файлов === RewriteCond %{ENV:ver} ^v[3-8]$ SetEnv ver_path v3 RewriteCond %{ENV:ver} ^v1[0-1]$ SetEnv ver_path v10 # Устанавливаем корневую папку для файлов (по аналогии с Nginx) DocumentRoot "/var/www/nod32mirror" Alias / "/var/www/nod32mirror/data/%{ENV:ver_path}/" # Заголовки <IfModule mod_headers.c> Header set X-Robots-Tag "noindex, nofollow, nosnippet, noarchive" Header set Cache-Control "no-cache, public, must-revalidate" </IfModule> # Логи ErrorLog /var/log/apache2/error_nod32mirror.log CustomLog /var/log/apache2/access_nod32mirror.log combined
Как это работает?
Определяем версию (ver) по User-Agent с помощью SetEnvIfNoCase.
Перенаправляем update.ver на нужную папку через RewriteCond + RewriteRule.
Для всех остальных файлов задаем переменную ver_path, которую подставляем в Alias для правильного пути.
Добавлены заголовки и логи (по аналогии с Nginx).
Обрати внимание:
Директива SetEnv в Apache не работает в .htaccess, поэтому для версий (ver_path) лучше делать редиректы с RewriteRule.
Если Apache не поддерживает Alias внутри .htaccess, придется настраивать его в httpd.conf.
-
- мл. сержант
- Сообщения: 114
- Зарегистрирован: 2020-02-24 8:40:47
шустрый скрипт скрипт зеркала NOD32
Пробуйте, у меня сейчас ключа нет для проверки на официальных серверах, поэтому, проверить какие версии сейчас официальные сервера поддерживают не могу. В init.py и init_official.py и в user_agent.py переменные прописаны для v12, а значит если сервер отдаст базы v12, скрипт их скачает. Комментарий был для меня, когда я тестировал на одном из зеркал
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
шустрый скрипт скрипт зеркала NOD32
Ну проверку прошёл. Посмотрим что антивири скажут.
как раз проверяю. Посмотрим что выйдет.
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
шустрый скрипт скрипт зеркала NOD32
Ну с горем пополам запустилось обновление. Чуть попарился с конфигом nginx.
Первое обновление скачивало долго ибо дофиг и симлинков нет. Сейчас вышло новое обновление и я чёт не понял зачем по новой то всё качает?
[2025-02-25 13:50:10] [ep10] update.ver: 269kB [00:00, 6.32MB/s]
[2025-02-25 13:50:10] [ep10] Версия баз у нас : 30774.0
[2025-02-25 13:50:10] [ep10] Версия баз на зеркале: 30775.0
[2025-02-25 13:50:10] [ep10] Требуется обновление баз
[2025-02-25 13:50:10] [ep10] Кол-во файлов в update.ver для загрузки: 1170
Это что каждое обновление он будет на каждую базу по 1.5 гига тянуть? Чёт не очень. Или где-то ошибся в конфиге я?
Первое обновление скачивало долго ибо дофиг и симлинков нет. Сейчас вышло новое обновление и я чёт не понял зачем по новой то всё качает?
[2025-02-25 13:50:10] [ep10] update.ver: 269kB [00:00, 6.32MB/s]
[2025-02-25 13:50:10] [ep10] Версия баз у нас : 30774.0
[2025-02-25 13:50:10] [ep10] Версия баз на зеркале: 30775.0
[2025-02-25 13:50:10] [ep10] Требуется обновление баз
[2025-02-25 13:50:10] [ep10] Кол-во файлов в update.ver для загрузки: 1170
Это что каждое обновление он будет на каждую базу по 1.5 гига тянуть? Чёт не очень. Или где-то ошибся в конфиге я?
-
- рядовой
- Сообщения: 46
- Зарегистрирован: 2014-08-20 2:41:55
шустрый скрипт скрипт зеркала NOD32
Я свой переделал, под новый, т.к. структура папок поменялась. Но через симлинки в root, но исходный конфиг nginx ругается.
Код: Выделить всё
# Логика для "остальных файлов"
location / {
set $ver_path $ver;
if ($ver ~ "^v[3-8]$") {
set $ver_path v3;
}
if ($ver ~ "^v1[0-1]$") {
set $ver_path v10;
}
root /home/Data/www/update.ikt-pro.ru/data/$ver_path;
}
-
- мл. сержант
- Сообщения: 114
- Зарегистрирован: 2020-02-24 8:40:47
шустрый скрипт скрипт зеркала NOD32
to-03, на что конкретно ругается nginx? Проверил, с гитхаба взял файл nginx, в двух местах исправил под свой сервер:
и порты изменил на свои в
и
nginx стартует без проблем
Код: Выделить всё
root /var/www/nod32mirror;
Код: Выделить всё
listen [::]:80;
Код: Выделить всё
listen 80;
-
- рядовой
- Сообщения: 46
- Зарегистрирован: 2014-08-20 2:41:55
шустрый скрипт скрипт зеркала NOD32
scorp337150, nginx у меня старый 1.20.1 Ругается на выражение root $root_path/data/$ver_path;
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
шустрый скрипт скрипт зеркала NOD32
Вот так вот прекрасно пашет:
Единственное пока не понимаю как он всё таки качает обновления. То зачем-то всё. То только дельту.
Код: Выделить всё
# Default server configuration
map $http_user_agent $ver {
"~^.*(EEA|EES|EFSW|EMSX|ESFW)+\s+Update.*BPC\s+(\d+)\..*$" "ep$2";
"~^.*Update.*BPC\s+(\d+)\..*$" "v$1";
}
server {
listen [::]:80;
listen 80;
listen 443 ssl;
listen [::]:443 ssl;
server_name eset.****.ru;
ssl_certificate /etc/ssl/certs/eset.****.ru-crt.pem; # Путь к сертификату
ssl_certificate_key /etc/ssl/private/eset.****.ru-key.pem; # Путь к ключу
# Дополнительные настройки SSL (рекомендуется для безопасности)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# Установка переменной root_path
set $root_path /var/www/nod32mirror;
index index.html;
# Доп. заголовки
add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";
add_header Cache-Control "no-cache, public, must-revalidate";
real_ip_header X-Real-IP;
real_ip_recursive on;
# Добавляем авторизацию для доступа ко всему сайту
auth_basic "Restricted Access"; # Сообщение, которое будет показываться при запросе пароля
auth_basic_user_file /etc/nginx/.htpasswd; # Путь к файлу с паролями
# Установка root для сервера
location = /index.html {
root $root_path;
try_files $uri =404;
}
# Логика для update.ver
location ~* \.ver$ {
if ($ver ~ "^ep[6-9]$") { rewrite ^/(dll/)?update.ver$ /eset_upd/$ver/$1update.ver break; }
if ($ver ~ "^ep1[0-9]$") { rewrite ^/(dll/)?update.ver$ /eset_upd/$ver/$1update.ver break; }
if ($ver ~ "^v[3-8]$") { rewrite ^(.*) /eset_upd/v3/dll/update.ver break; }
if ($ver ~ "^v1[0-1]$") { rewrite ^(.*) /eset_upd/v10/dll/update.ver break; }
if ($ver ~ "^v1[2-9]$") { rewrite ^(.*) /eset_upd/$ver/dll/update.ver break; }
}
# Логика для "остальных файлов"
location / {
set $ver_path $ver;
if ($ver ~ "^v[3-8]$") {
set $ver_path v3;
}
if ($ver ~ "^v1[0-1]$") {
set $ver_path v10;
}
root $root_path/data/$ver_path;
try_files $uri $uri/ =404;
}
# Лог файлы
access_log /var/log/nginx/access_nod32mirror.log;
error_log /var/log/nginx/error_nod32mirror.log;
}
-
- мл. сержант
- Сообщения: 114
- Зарегистрирован: 2020-02-24 8:40:47
шустрый скрипт скрипт зеркала NOD32
depositaire,
Алгоритм в общем +- следующий: Скачивается update.ver и сравнивается с текущей версией в хранилище, если надо обновлять, то update.ver парсится на предмет ссылок на файлы, после этого эти файлы ставятся в очередь на закачку. Во время закачки если файл в хранилище существует, то он не скачивается и пропускается. В конце update.ver переносится в хранилище и базы в хранилище вычищаются от старых файлов. Т.е. размер скачиваемых файлов зависит только от того, сколько ESET заменила файлов в новой версииdepositaire писал(а): ↑2025-02-26 12:42:31Единственное пока не понимаю как он всё таки качает обновления. То зачем-то всё. То только дельту.
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
шустрый скрипт скрипт зеркала NOD32
Ну смысл то да, я понял алгоритма. Просто когда я в первый раз запустил то скачал 4 по 1.5. Запускаю после выходна нового обновления и опять получаю столько же. Тут то и офигел.
-
- мл. сержант
- Сообщения: 114
- Зарегистрирован: 2020-02-24 8:40:47
шустрый скрипт скрипт зеркала NOD32
Возможно, попали на крупное обновление от ESET. Обычно такое не часто бываетdepositaire писал(а): ↑2025-02-26 13:28:18Ну смысл то да, я понял алгоритма. Просто когда я в первый раз запустил то скачал 4 по 1.5. Запускаю после выходна нового обновления и опять получаю столько же. Тут то и офигел.
-
- мл. сержант
- Сообщения: 114
- Зарегистрирован: 2020-02-24 8:40:47
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
шустрый скрипт скрипт зеркала NOD32
Единственное тут перехимичил с безопастностью, ниже 10й верии обновления не принимает. Только через http.depositaire писал(а): ↑2025-02-26 12:42:31ssl_certificate /etc/ssl/certs/eset.****.ru-crt.pem; # Путь к сертификату
ssl_certificate_key /etc/ssl/private/eset.****.ru-key.pem; # Путь к ключу
# Дополнительные настройки SSL (рекомендуется для безопасности)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
Угу. Тоже прикрутил веб отчёт. Видно хоть стало размеры.
-
- рядовой
- Сообщения: 46
- Зарегистрирован: 2014-08-20 2:41:55
шустрый скрипт скрипт зеркала NOD32
Код: Выделить всё
# Virtual server configuration
map $http_user_agent $ver {
"~^.*(EEA|EES|EFSW|EMSX|ESFW)+\s+Update.*BPC\s+(\d+)\..*$" "ep$2";
"~^.*Update.*BPC\s+(\d+)\..*$" "v$1";
}
server {
listen 80;
server_name 1.ru;
root /home/Data/www/1.ru;
index index.html;
autoindex on;
access_log /var/log/nginx/1.ru-access.log;
error_log /var/log/nginx/1.ru-error.log;
#limit_req zone=one burst=1 nodelay;
# Setting directory names
set $webface .webface;
set $errorspages errorspages;
set $root_path /home/Data/www/1.ru;
# Setting custom error pages
set $errordocs $root_path/.webface/errorpages;
error_page 401 /401.html; location = /401.html {root $errordocs;}
error_page 403 /403.html; location = /403.html {root $errordocs;}
error_page 404 /404.html; location = /404.html {root $errordocs;}
error_page 500 /500.html; location = /500.html {root $errordocs;}
error_page 502 /502.html; location = /502.html {root $errordocs;}
error_page 503 /503.html; location = /503.html {root $errordocs;}
# Deny access for spiders/robots/tools/etc
if ($http_user_agent ~* ^(wget|aria2|nod32view|perl|php|curl|google|yandex|yahoo|-|mirror|spider|bot|parser|grab)) {
return 403;
}
# Enable checking username/password for updates files access
location ~* ^.+\.nup$ {
allow all;
auth_basic "Enter login:password for getting access";
auth_basic_user_file /home/Data/www/1.ru/.htpasswd;
}
# Enable checking username/password for updates files access
# Redirect empty requests to webface index file
location = / {
try_files /$webface/index.html =404;
}
try_files $uri /$webface$uri /$webface/$errorspages$uri =404;
# Логика для update.ver
location ~* \.ver$ {
if ($ver ~ "^ep[9]$") {rewrite ^/(dll/)?update.ver$ /eset_upd/ep8/$1update.ver break;}
if ($ver ~ "^ep1[0-9]$") {rewrite ^/(dll/)?update.ver$ /eset_upd/$ver/$1update.ver break;}
if ($ver ~ "^v(5|9)$") {rewrite ^(.*) /eset_upd/$ver/update.ver break;}
if ($ver ~ "^v[3-8]$") {rewrite ^(.*) /eset_upd/v3/update.ver break;}
if ($ver ~ "^v1[0-1]$") {rewrite ^(.*) /eset_upd/v10/dll/update.ver break;}
if ($ver ~ "^v1[2-9]$") {rewrite ^(.*) /eset_upd/$ver/dll/update.ver break;}
}
# Логика для "остальных файлов"
location / {
set $ver_path $ver;
if ($ver ~ "^v[3-8]$") {
set $ver_path v3;
}
if ($ver ~ "^v1[0-1]$") {
set $ver_path v10;
}
root $root_path/data/$ver_path;
}
location ~ /\.ht {
deny all;
}
}
-
- проходил мимо
- Сообщения: 6
- Зарегистрирован: 2021-05-06 11:13:31
шустрый скрипт скрипт зеркала NOD32
Коллеги, привет!
Можете поделиться парой ключ-пароль для обновления старого варианта скрипта?
Можете поделиться парой ключ-пароль для обновления старого варианта скрипта?
-
- сержант
- Сообщения: 163
- Зарегистрирован: 2011-10-14 14:04:17
шустрый скрипт скрипт зеркала NOD32
Позаимствовал у вас кусочек. Вроде Эсетам пофиг.
Но опять напоролся на ошибку обновления что не найдены файлы обновления. К удивлению 12 и 9 обновились, а 11й говорит что файл не найден на сервере.
Код: Выделить всё
[27/Feb/2025:12:31:15 +0300] "GET /dll/update.ver HTTP/1.1" 304 0 "-" "EES Update (Windows; U; 64bit; BPC 11.0.2044.0; OS: 10.0.
[27/Feb/2025:12:31:16 +0300] "HEAD /endpointwindowslatest-rel-sta/mod_002_engine_64619/em002_64_n1.dll.nup HTTP/1.1" 401 0 "-" "EES Upda
[27/Feb/2025:12:31:16 +0300] "GET /endpointwindowslatest-rel-sta/mod_002_engine_64619/em002_64_n1.dll.nup HTTP/1.1" 404 125 "-"
[27/Feb/2025:12:31:16 +0300] "HEAD /dll/update.ver HTTP/1.1" 401 0 "-" "EES Update (Windows; U; 64bit; BPC 11.0.2044.0; OS: 10.0.22631 S
[27/Feb/2025:12:31:16 +0300] "GET /dll/update.ver HTTP/1.1" 304 0 "-" "EES Update (Windows; U; 64bit; BPC 11.0.2044.0; OS: 10.0.
[27/Feb/2025:12:31:16 +0300] "HEAD /endpointwindowslatest-rel-sta/mod_002_engine_64619/em002_64_n1.dll.nup HTTP/1.1" 401 0 "-" "EES Upda
[27/Feb/2025:12:31:16 +0300] "GET /endpointwindowslatest-rel-sta/mod_002_engine_64619/em002_64_n1.dll.nup HTTP/1.1" 404 125 "-"