шустрый скрипт скрипт зеркала NOD32

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
EVKash
рядовой
Сообщения: 15
Зарегистрирован: 2023-03-26 18:39:44

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение EVKash » 2025-04-28 13:31:50

Получается ep7 похоронили?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

depositaire
сержант
Сообщения: 163
Зарегистрирован: 2011-10-14 14:04:17

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение depositaire » 2025-04-29 9:49:25

x-myrza писал(а):
2025-04-28 6:31:40
Уже почти месяц 8 версия есет по v3 не обновляется у всех так?
Именно чисто 8я или ep8?. EP8 без проблем обновляется, недавно тестил у себя её.

depositaire
сержант
Сообщения: 163
Зарегистрирован: 2011-10-14 14:04:17

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение depositaire » 2025-04-29 9:53:13

limbpro писал(а):
2025-04-25 23:32:46
У меня на обоих версиях не работает
Так а в новой версии разве есть поддержка 7й версии? Там она вообще нигде не упоминается. И так может натравить обновление в папку с 8ей версией?

boot-a
ефрейтор
Сообщения: 51
Зарегистрирован: 2017-03-24 11:54:30
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение boot-a » 2025-05-02 13:35:18

Тоже проблема с update.ver но другая.
Скрипт отрабатывает штатно:

Код: Выделить всё

[2025-05-02 13:31:16] [ep11] Обновляем вериию: ESET NOD32 Endpoint Ver. 11
[2025-05-02 13:31:16] [ep11] В хранилище update.ver версии : 0 C:\OSPanel\domains\rrt-secure2.ddns.net\eset_upd\ep11\dll\update.ver
[2025-05-02 13:31:16] [ep11] Скачиваем файл update.ver
[2025-05-02 13:31:16] [ep11] Сохраняем update.ver в  : C:\OSPanel\domains\rrt-secure2.ddns.net\tmp\update.ver
[2025-05-02 13:31:16] [ep11] update.ver: 273kB [00:00, 56.8MB/s]
[2025-05-02 13:31:17] [ep11] Версия баз у нас     : 0
[2025-05-02 13:31:17] [ep11] Версия баз на зеркале: 31132.0
[2025-05-02 13:31:17] [ep11] Требуется обновление баз
[2025-05-02 13:31:17] [ep11] Кол-во файлов в update.ver для загрузки: 1188
[ep11] Общий прогресс: 100%|###############################################################################################################| 1188/1188 [00:00<00:00, 5291.57file/s]
[2025-05-02 13:31:17] Успешно обновились с версии 0 до версии 31132.0
[2025-05-02 13:31:17] Файл  C:\OSPanel\domains\rrt-secure2.ddns.net\tmp\update.ver был очищен от категорий {'[LINKS]', '[HOSTS]', '[SERVERS]'}
[2025-05-02 13:31:17] [ep11] Перемещаем update.ver в хранилище : C:\OSPanel\domains\rrt-secure2.ddns.net\eset_upd\ep11\dll\update.ver
[2025-05-02 13:31:17] Путь к базам : C:\OSPanel\domains\rrt-secure2.ddns.net\eset_upd\ep11
[2025-05-02 13:31:17] Кол-во пустых папок удалено: 1
[2025-05-02 13:31:17] --------------------------------------------------
[2025-05-02 13:31:17] Скачано файлов для базы текущей версии : 1
[2025-05-02 13:31:17] Размер скачанных файлов текущей версии : 272.9 KB
[2025-05-02 13:31:17] Кол-во старых файлов базы удалено      : 1
[2025-05-02 13:31:17] Общее кол-во попыток перекачать файл   : 0
[2025-05-02 13:31:17] Время скачивания баз версии [ep11]: 0.89 сек.
[2025-05-02 13:31:17] Кол-во файлов в папке баз   [ep11]: 1188
[2025-05-02 13:31:17] Размер папки с базами       [ep11]: 1.7 GB
[2025-05-02 13:31:17] --------------------------------------------------
Но паки C:\OSPanel\domains\rrt-secure2.ddns.net\eset_upd\ep11\dll нет после его работы равно как и файла update.ver в папке tmp. Папка ....\ep11\businesslatest-rel-sta на месте со всеми данными. Если создать папку C:\OSPanel\domains\rrt-secure2.ddns.net\eset_upd\ep11\dll перед запуском, то после отработки с таким вот логом она пропадает.

Если в динамике мониторить папку ....\ep11 в процессе работы скрипта, то папка dll в ней появляется и пропадает практически моментально.

boot-a
ефрейтор
Сообщения: 51
Зарегистрирован: 2017-03-24 11:54:30
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение boot-a » 2025-05-02 14:38:40

Дополню: если закомментировать #delete_files(files_to_delete) то папка dll не пропадает и update.ver в ней лежит. А в логе видно строку:

Код: Выделить всё

.....
 Успешно обновились с версии 0 до версии 31132.0
 Файл  C:\1\tmp\update.ver был очищен от категорий {'[SERVERS]', '[HOSTS]', '[LINKS]'}
 [ep12] Перемещаем update.ver в хранилище : C:\1\\eset_upd\ep12\dll\update.ver
 Путь к базам : C:\1\\eset_upd\ep12
 Кол-во пустых папок удалено: 0
 Список файлов для удаления : ['C:\\1\\\\eset_upd\\ep12\\dll\\update.ver']
 ......
При перезапуске скрипт нормально определяет текущую версию базы. То есть очистка работает как-то криво, почему в нее попадает ['C:\\1\\\\eset_upd\\ep12\\dll\\update.ver'] ? Windows 2012r2 Python 3.13.0

vlazari
рядовой
Сообщения: 10
Зарегистрирован: 2024-03-28 18:51:23

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение vlazari » 2025-05-02 17:31:16

limbpro писал(а):
2025-04-25 20:49:15
limbpro » 2025-04-25 20:49:15

vlazari писал(а): ↑
2025-04-25 16:30:50
пожалуйста кто-нибудь объясните как его правильно запускать на Windows 11?
1. Python установить, это понятно
2. папку с гита распаковать в c:\pynod-mirror-tool-main
а что ещё нужно ставить?

В консоле:
cd pynod-mirror-tool
pip install -r requiments.txt
Редактируешь файл nod32ms.conf под себя
python3 update.py
добрый день!
Спасибо, я понял, скрипт обновления скачивает, но Wnginx никак не могу заставить работать.
ошибка в логе при подключении "2025/05/02 17:26:39 [crit] 8764#2940: *1 CreateFile() "c:
ginx\html/eset_upd/ep9/dll/update.ver" failed (123: The filename, directory name, or volume label syntax is incorrect), client: 10.1.182.19, server: localhost, request: "HEAD /dll/update.ver HTTP/1.1", host: "10.1.182.182"

сам файл nginx:

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
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 localhost;
root c:\nginx\html;
#charset koi8-r;

#access_log logs/host.access.log main;

location = /index.html {

try_files $uri =404; # Ищем 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;



# Логика для 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;}
}



}
}

x-myrza
рядовой
Сообщения: 28
Зарегистрирован: 2016-11-11 7:24:25

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение x-myrza » 2025-05-02 21:22:37

depositaire писал(а):
2025-04-29 9:49:25
Именно чисто 8я или ep8?. EP8 без проблем обновляется, недавно тестил у себя её.
Да именно чисто 8я, все обновление на сервере есть, но обновляется только при перезагрузке системы. Не могу понять в чем проблемма

Аватара пользователя
Raven2000
-=_UNIX_=-
Сообщения: 4453
Зарегистрирован: 2006-10-29 17:59:13
Откуда: Там, где нас нет.
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Raven2000 » 2025-05-03 10:00:46

Я уже нод давно в конторах похоронил.. Вопрос - а на что-то другое не перешли почему?
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Аватара пользователя
Raven2000
-=_UNIX_=-
Сообщения: 4453
Зарегистрирован: 2006-10-29 17:59:13
Откуда: Там, где нас нет.
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Raven2000 » 2025-05-03 10:16:48

vlazari писал(а):
2025-05-02 17:31:16
крипт обновления скачивает, но Wnginx никак не могу заставить работать.
ошибка в логе при подключении "2025/05/02 17:26:39 [crit] 8764#2940: *1 CreateFile() "c:
ginx\html/eset_upd/ep9/dll/update.ver" failed (123: The filename, directory name, or volume label syntax is incorrect), client: 10.1.182.19, server: localhost, request: "HEAD /dll/update.ver HTTP/1.1", host: "10.1.182.182"
сам файл nginx:

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
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 localhost;
root c:\nginx\html;
#charset koi8-r;

#access_log logs/host.access.log main;

location = /index.html {

try_files $uri =404; # Ищем 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;



# Логика для 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;}
}



}
}
Проблема в вашей конфигурации Wnginx связана с некорректными путями и обработкой запросов. Вот основные проблемы и их решения:

Проблема с путями в Windows:

В логе ошибки видно, что nginx пытается обратиться к пути c: ginx\html/eset_upd/ep9/dll/update.ver (обратите внимание на разрыв строки c: ginx)

В Windows нужно использовать либо двойные обратные слеши, либо обычные прямые слеши

Проблема с обработкой location:

Ваш location блок для .ver файлов не учитывает структуру папок

Вот исправленная конфигурация:

Код: Выделить всё

#user nobody;
worker_processes 1;

events {
    worker_connections 1024;
}

http {
    map $http_user_agent $ver {
        "~^.*(EEA|EES|EFSW|EMSX|ESFW)+\s+Update.*BPC\s+(\d+)\..*$" "ep$2";
        "~^.*Update.*BPC\s+(\d+)\..*$" "v$1";
        default "v10"; # значение по умолчанию
    }

    server {
        listen 80;
        server_name localhost;
        root c:/nginx/html;  # Исправленный путь для Windows
        # или root c:\\nginx\\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;

        location / {
            try_files $uri $uri/ =404;
        }

        # Логика для update.ver
        location ~* ^/(dll/)?update\.ver$ {
            if ($ver ~ "^ep[6-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            if ($ver ~ "^ep1[0-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            if ($ver ~ "^v[3-8]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v3/dll/update.ver break;
            }
            if ($ver ~ "^v1[0-1]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v10/dll/update.ver break;
            }
            if ($ver ~ "^v1[2-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
        }
    }
}
Ключевые изменения:

Исправлен путь к root-директории для Windows

Добавлен default в map для случаев, когда User-Agent не соответствует шаблону

Улучшена обработка location для update.ver

Исправлены регулярные выражения (экранирована точка в \.ver)

Добавлен базовый location для обработки других запросов

Также проверьте:

Существует ли физически файл c:\nginx\html\eset_upd\ep9\dll\update.ver?

Правильно ли настроены права на чтение этих файлов для пользователя, от которого запущен nginx?

Нет ли опечаток в путях (в конфиге есть eset_upd и eset_upd - убедитесь, что везде одинаково)

После внесения изменений перезапустите nginx и проверьте логи снова.
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

vlazari
рядовой
Сообщения: 10
Зарегистрирован: 2024-03-28 18:51:23

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение vlazari » 2025-05-03 15:34:26

спасибо вам большое!
уже ошибку не выдаёт.
файл c:\nginx\html\eset_upd\ep9\dll\update.ver есть.
в логах теперь:
10.1.182.19 - - [03/May/2025:15:26:55 +0300] "HEAD /dll/update.ver HTTP/1.1" 304
10.1.182.19 - - [03/May/2025:15:26:55 +0300] "HEAD /ep9-rel-sta/mod_002_engine_65151/em002_64_l1.dll.nup HTTP/1.1" 404 0 "

помогите и эту часть конфига изменить, пожалуйста:
# Логика для "остальных файлов"
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; # ЕСЛИ В nod32ms.conf МЕНЯЛИ prefix, ТО data ЗАМЕНИТЬ НА НОВЫЙ prefix ИЗ nod32ms.conf
try_files $uri $uri/ =404;
}

Аватара пользователя
Raven2000
-=_UNIX_=-
Сообщения: 4453
Зарегистрирован: 2006-10-29 17:59:13
Откуда: Там, где нас нет.
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Raven2000 » 2025-05-03 15:40:57

vlazari писал(а):
2025-05-03 15:34:26
спасибо вам большое!
уже ошибку не выдаёт.
файл c:\nginx\html\eset_upd\ep9\dll\update.ver есть.
в логах теперь:
10.1.182.19 - - [03/May/2025:15:26:55 +0300] "HEAD /dll/update.ver HTTP/1.1" 304
10.1.182.19 - - [03/May/2025:15:26:55 +0300] "HEAD /ep9-rel-sta/mod_002_engine_65151/em002_64_l1.dll.nup HTTP/1.1" 404 0 "

помогите и эту часть конфига изменить, пожалуйста:
# Логика для "остальных файлов"
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; # ЕСЛИ В nod32ms.conf МЕНЯЛИ prefix, ТО data ЗАМЕНИТЬ НА НОВЫЙ prefix ИЗ nod32ms.conf
try_files $uri $uri/ =404;
}
Проблема в том, что клиент пытается получить файл /ep9-rel-sta/mod_002_engine_65151/em002_64_l1.dll.nup, но получает 404, так как у вас не настроена правильная обработка таких запросов. Вот исправленная конфигурация для обработки всех типов запросов (и update.ver, и файлов обновлений):

Код: Выделить всё

#user nobody;
worker_processes 1;

events {
    worker_connections 1024;
}

http {
    map $http_user_agent $ver {
        "~^.*(EEA|EES|EFSW|EMSX|ESFW)+\s+Update.*BPC\s+(\d+)\..*$" "ep$2";
        "~^.*Update.*BPC\s+(\d+)\..*$" "v$1";
        default "v10"; # значение по умолчанию
    }

    server {
        listen 80;
        server_name localhost;
        root c:/nginx/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;

        # Логика для update.ver
        location ~* ^/(dll/)?update\.ver$ {
            if ($ver ~ "^ep[6-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            if ($ver ~ "^ep1[0-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            if ($ver ~ "^v[3-8]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v3/dll/update.ver break;
            }
            if ($ver ~ "^v1[0-1]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v10/dll/update.ver break;
            }
            if ($ver ~ "^v1[2-9]$") {
                rewrite ^/(dll/)?update\.ver$ /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";
            }
            
            # Для EP версий (6-19)
            if ($ver ~ "^ep[6-9]$") {
                root c:/nginx/html/eset_upd/$ver;
                try_files $uri $uri/ =404;
                break;
            }
            if ($ver ~ "^ep1[0-9]$") {
                root c:/nginx/html/eset_upd/$ver;
                try_files $uri $uri/ =404;
                break;
            }
            
            # Для V версий (3-19)
            root c:/nginx/html/eset_upd/$ver_path;
            try_files $uri $uri/ =404;
        }
    }
}
Ключевые изменения:

Добавлена явная обработка для EP версий (6-19) с установкой правильного root

Для V версий сохраняется логика с приведением v3-v8 → v3 и v10-v11 → v10

Все пути сделаны абсолютными для избежания неоднозначностей

Добавлен явный break для EP версий, чтобы избежать конфликтов

Также убедитесь, что:

Файлы обновлений находятся в правильных директориях, например:

c:\nginx\html\eset_upd\ep9\ep9-rel-sta\mod_002_engine_65151\em002_64_l1.dll.nup

c:\nginx\html\eset_upd\v10\... (для v10 версий)

Все директории имеют правильные права на чтение

В логах nginx нет других ошибок (проверьте error.log)

После внесения изменений перезапустите nginx и проверьте работу снова. Если проблема сохраняется, проверьте точный путь к запрашиваемому файлу на диске и сравните с тем, что пытается найти nginx (это можно увидеть в error.log).
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

vlazari
рядовой
Сообщения: 10
Зарегистрирован: 2024-03-28 18:51:23

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение vlazari » 2025-05-03 15:52:50

на ubuntu пытаюсь запустить - тоже самое. подскажите пожалуйста...
10.1.182.19 - - [03/May/2025:12:47:59 +0000] "HEAD /dll/update.ver HTTP/1.1" 404 0 "
10.1.182.19 - - [03/May/2025:12:48:00 +0000] "HEAD /dll/update.ver HTTP/1.1" 404 0 "
файл nginx

Код: Выделить всё

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;
        root /var/www/html/nod32mirror2/;	# НАСТРОИТЬ ПОД СВОЙ СЕРВЕР
        #server_name _;
        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;

        location = /index.html {

        try_files $uri =404;      # Ищем index.html в этом каталоге
        }

	# Логика для 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 /data/$ver_path;		# ЕСЛИ В nod32ms.conf МЕНЯЛИ prefix, ТО data ЗАМЕНИТЬ НА НОВЫЙ prefix ИЗ nod32ms.conf
                try_files $uri $uri/ =404;
                }

        access_log /var/log/nginx/error_nod32mirror.log;
        error_log /var/log/nginx/error_nod32mirror.log debug;
        error_log /var/log/nginx/error_nod32mirror.log;

}
файлы *.ver и всё остальное есть. папка root /var/www/html/nod32mirror2
в ней 2 папки:
eset_upd
data

Аватара пользователя
Raven2000
-=_UNIX_=-
Сообщения: 4453
Зарегистрирован: 2006-10-29 17:59:13
Откуда: Там, где нас нет.
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Raven2000 » 2025-05-03 15:57:56

Проблема в том, что Nginx не находит файл update.ver из-за неправильных путей в конфигурации. Давайте исправим конфиг:

Код: Выделить всё

map $http_user_agent $ver {
    "~^.*(EEA|EES|EFSW|EMSX|ESFW)+\s+Update.*BPC\s+(\d+)\..*$" "ep$2";
    "~^.*Update.*BPC\s+(\d+)\..*$" "v$1";
    default "v10"; # Добавляем значение по умолчанию
}

server {
    listen 80;
    root /var/www/html/nod32mirror2;
    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;

    location = /index.html {
        try_files $uri =404;
    }

    # Логика для update.ver
    location ~* ^/(dll/)?update\.ver$ {
        # Для EP версий
        if ($ver ~ "^ep([6-9]|1[0-9])$") {
            rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
        }
        # Для V версий
        if ($ver ~ "^v[3-8]$") {
            rewrite ^/(dll/)?update\.ver$ /eset_upd/v3/dll/update.ver break;
        }
        if ($ver ~ "^v1[0-1]$") {
            rewrite ^/(dll/)?update\.ver$ /eset_upd/v10/dll/update.ver break;
        }
        if ($ver ~ "^v1[2-9]$") {
            rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
        }
        
        # Если ничего не подошло
        return 404;
    }

    # Логика для остальных файлов
    location / {
        set $ver_path $ver;

        if ($ver ~ "^v[3-8]$") {
            set $ver_path "v3";
        }
        if ($ver ~ "^v1[0-1]$") {
            set $ver_path "v10";
        }
        
        # Для EP версий
        if ($ver ~ "^ep([6-9]|1[0-9])$") {
            root /var/www/html/nod32mirror2/eset_upd/$ver;
            try_files $uri $uri/ =404;
            break;
        }
        
        # Для V версий
        root /var/www/html/nod32mirror2/data/$ver_path;
        try_files $uri $uri/ =404;
    }

    access_log /var/log/nginx/error_nod32mirror.log;
    error_log /var/log/nginx/error_nod32mirror.log;
}
Основные изменения:

Добавлено значение по умолчанию для переменной $ver

Упрощены регулярные выражения для EP версий (объединены условия)

Исправлены пути - все ссылаются на /var/www/html/nod32mirror2/

Добавлен явный return 404 если ни одно условие для update.ver не сработало

Улучшена структура location блоков

Проверьте:

Что файлы действительно существуют по указанным путям, например:

/var/www/html/nod32mirror2/eset_upd/ep9/dll/update.ver

/var/www/html/nod32mirror2/data/v3/...

Права доступа к файлам (должны быть читаемы для пользователя nginx)

После изменений выполните nginx -t для проверки конфигурации и перезапустите nginx

Если проблема сохраняется, проверьте error.log - там должны быть более подробные сообщения о том, по какому именно пути nginx ищет файлы.
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

vlazari
рядовой
Сообщения: 10
Зарегистрирован: 2024-03-28 18:51:23

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение vlazari » 2025-05-03 16:00:09

Raven2000 писал(а):
2025-05-03 15:40:57

Код: Выделить всё

#user nobody;
worker_processes 1;

events {
    worker_connections 1024;
}

http {
    map $http_user_agent $ver {
        "~^.*(EEA|EES|EFSW|EMSX|ESFW)+\s+Update.*BPC\s+(\d+)\..*$" "ep$2";
        "~^.*Update.*BPC\s+(\d+)\..*$" "v$1";
        default "v10"; # значение по умолчанию
    }

    server {
        listen 80;
        server_name localhost;
        root c:/nginx/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;

        # Логика для update.ver
        location ~* ^/(dll/)?update\.ver$ {
            if ($ver ~ "^ep[6-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            if ($ver ~ "^ep1[0-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            if ($ver ~ "^v[3-8]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v3/dll/update.ver break;
            }
            if ($ver ~ "^v1[0-1]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v10/dll/update.ver break;
            }
            if ($ver ~ "^v1[2-9]$") {
                rewrite ^/(dll/)?update\.ver$ /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";
            }
            
            # Для EP версий (6-19)
            if ($ver ~ "^ep[6-9]$") {
                root c:/nginx/html/eset_upd/$ver;
                try_files $uri $uri/ =404;
                break;
            }
            if ($ver ~ "^ep1[0-9]$") {
                root c:/nginx/html/eset_upd/$ver;
                try_files $uri $uri/ =404;
                break;
            }
            
            # Для V версий (3-19)
            root c:/nginx/html/eset_upd/$ver_path;
            try_files $uri $uri/ =404;
        }
    }
}
ему не нравятся 2 строчки, помогите их переделать, пожалуйста:
nginx: [emerg] "try_files" directive is not allowed here in c:\nginx/conf/nginx.conf:59
nginx: [emerg] "try_files" directive is not allowed here in c:\nginx/conf/nginx.conf:64

vlazari
рядовой
Сообщения: 10
Зарегистрирован: 2024-03-28 18:51:23

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение vlazari » 2025-05-03 16:05:20

та же самая ошибка и на ubuntu
nginx: [emerg] "try_files" directive is not allowed here in /etc/nginx/conf.d/nginx.conf:57

Аватара пользователя
Raven2000
-=_UNIX_=-
Сообщения: 4453
Зарегистрирован: 2006-10-29 17:59:13
Откуда: Там, где нас нет.
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Raven2000 » 2025-05-03 16:10:46

Проблема в том, что try_files нельзя использовать внутри if блоков в Nginx. Давайте перепишем конфигурацию, чтобы избежать этой ошибки:

Код: Выделить всё

#user nobody;
worker_processes 1;

events {
    worker_connections 1024;
}

http {
    map $http_user_agent $ver {
        "~^.*(EEA|EES|EFSW|EMSX|ESFW)+\s+Update.*BPC\s+(\d+)\..*$" "ep$2";
        "~^.*Update.*BPC\s+(\d+)\..*$" "v$1";
        default "v10";
    }

    server {
        listen 80;
        server_name localhost;
        root c:/nginx/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;

        # Логика для update.ver
        location ~* ^/(dll/)?update\.ver$ {
            if ($ver ~ "^ep[6-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            if ($ver ~ "^ep1[0-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            if ($ver ~ "^v[3-8]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v3/dll/update.ver break;
            }
            if ($ver ~ "^v1[0-1]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v10/dll/update.ver break;
            }
            if ($ver ~ "^v1[2-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            return 404;
        }

        # Для EP версий (6-19)
        location ~ ^/eset_upd/ep([6-9]|1[0-9])/ {
            internal;
            root c:/nginx/html;
            try_files $uri $uri/ =404;
        }

        # Для V версий (3-19)
        location ~ ^/eset_upd/v(3|10|[12-9])/ {
            internal;
            root c:/nginx/html;
            try_files $uri $uri/ =404;
        }

        # Основной location для остальных файлов
        location / {
            set $ver_path $ver;
            
            if ($ver ~ "^v[3-8]$") {
                set $ver_path "v3";
            }
            if ($ver ~ "^v1[0-1]$") {
                set $ver_path "v10";
            }
            
            if ($ver ~ "^ep([6-9]|1[0-9])$") {
                rewrite ^/(.*)$ /eset_upd/$ver/$1 break;
            }
            
            if ($ver ~ "^v") {
                rewrite ^/(.*)$ /eset_upd/$ver_path/$1 break;
            }
            
            return 404;
        }
    }
}
Ключевые изменения:

Убрал try_files из if блоков

Добавил отдельные location блоки для обработки файлов в папках eset_upd

Изменил основной location для использования rewrite вместо try_files

Добавил internal директиву для служебных location'ов

Упростил регулярные выражения для версий

Проверьте:

Что структура папок соответствует ожиданиям:

c:/nginx/html/eset_upd/ep9/...

c:/nginx/html/eset_upd/v3/...

и т.д.

После изменений выполните:

Код: Выделить всё

    nginx -t
    nginx -s reload
Проверьте логи на наличие ошибок

Если клиенты продолжают получать 404 ошибки, проверьте:

Существуют ли файлы по указанным путям

Правильно ли определяется версия из User-Agent

Права доступа к файлам и папкам
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

vlazari
рядовой
Сообщения: 10
Зарегистрирован: 2024-03-28 18:51:23

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение vlazari » 2025-05-03 16:18:01

спасибо, теперь не ругается, но файлы не видит всё равно
10.1.182.19 - - [03/May/2025:16:15:45 +0300] "HEAD /dll/update.ver HTTP/1.1" 304 0
10.1.182.19 - - [03/May/2025:16:15:45 +0300] "HEAD /ep9-rel-sta/mod_002_engine_65151/em002_64_l1.dll.nup HTTP/1.1" 404 0 "

правильный путь c:\nginx\html\data\ep9\ep9-rel-sta\ - там фалы. как добавить его?

yoda
рядовой
Сообщения: 48
Зарегистрирован: 2023-07-29 9:04:00

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение yoda » 2025-05-03 17:08:10

Чат ЖИПИТИШКА пришел на форум :) :) :) но есть нюанс))

Аватара пользователя
Raven2000
-=_UNIX_=-
Сообщения: 4453
Зарегистрирован: 2006-10-29 17:59:13
Откуда: Там, где нас нет.
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Raven2000 » 2025-05-03 17:19:58

vlazari писал(а):
2025-05-03 16:18:01
спасибо, теперь не ругается, но файлы не видит всё равно
10.1.182.19 - - [03/May/2025:16:15:45 +0300] "HEAD /dll/update.ver HTTP/1.1" 304 0
10.1.182.19 - - [03/May/2025:16:15:45 +0300] "HEAD /ep9-rel-sta/mod_002_engine_65151/em002_64_l1.dll.nup HTTP/1.1" 404 0 "

правильный путь c:\nginx\html\data\ep9\ep9-rel-sta\ - там фалы. как добавить его?

Код: Выделить всё

#user nobody;
worker_processes 1;

events {
    worker_connections 1024;
}

http {
    map $http_user_agent $ver {
        "~^.*(EEA|EES|EFSW|EMSX|ESFW)+\s+Update.*BPC\s+(\d+)\..*$" "ep$2";
        "~^.*Update.*BPC\s+(\d+)\..*$" "v$1";
        default "v10";
    }

    server {
        listen 80;
        server_name localhost;
        root c:/nginx/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;

        # Логика для update.ver
        location ~* ^/(dll/)?update\.ver$ {
            if ($ver ~ "^ep([6-9]|1[0-9])$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            if ($ver ~ "^v[3-8]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v3/dll/update.ver break;
            }
            if ($ver ~ "^v1[0-1]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v10/dll/update.ver break;
            }
            if ($ver ~ "^v1[2-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            return 404;
        }

        # Обработка путей типа /ep9-rel-sta/
        location ~ ^/(ep\d+-rel-sta|v\d+-rel-sta)/ {
            set $ver_path $ver;
            
            if ($ver ~ "^v[3-8]$") {
                set $ver_path "v3";
            }
            if ($ver ~ "^v1[0-1]$") {
                set $ver_path "v10";
            }
            
            if ($ver ~ "^ep([6-9]|1[0-9])$") {
                alias c:/nginx/html/data/$ver/$1/;
                try_files $uri =404;
                break;
            }
            
            if ($ver ~ "^v") {
                alias c:/nginx/html/data/$ver_path/$1/;
                try_files $uri =404;
                break;
            }
            
            return 404;
        }

        # Основной location для остальных файлов
        location / {
            try_files $uri $uri/ =404;
        }
    }
}
пробуй
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

Аватара пользователя
Raven2000
-=_UNIX_=-
Сообщения: 4453
Зарегистрирован: 2006-10-29 17:59:13
Откуда: Там, где нас нет.
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Raven2000 » 2025-05-03 17:20:28

yoda писал(а):
2025-05-03 17:08:10
Чат ЖИПИТИШКА пришел на форум :) :) :) но есть нюанс))
нее дипсик тут )))
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

vlazari
рядовой
Сообщения: 10
Зарегистрирован: 2024-03-28 18:51:23

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение vlazari » 2025-05-03 22:51:06

Raven2000 писал(а):
2025-05-03 17:19:58
пробуй
nginx: [emerg] "alias" directive is not allowed here in c:\nginx/conf/nginx.conf:55

Аватара пользователя
Raven2000
-=_UNIX_=-
Сообщения: 4453
Зарегистрирован: 2006-10-29 17:59:13
Откуда: Там, где нас нет.
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение Raven2000 » 2025-05-03 23:24:18

Код: Выделить всё

#user nobody;
worker_processes 1;

events {
    worker_connections 1024;
}

http {
    map $http_user_agent $ver {
        "~^.*(EEA|EES|EFSW|EMSX|ESFW)+\s+Update.*BPC\s+(\d+)\..*$" "ep$2";
        "~^.*Update.*BPC\s+(\d+)\..*$" "v$1";
        default "v10";
    }

    server {
        listen 80;
        server_name localhost;
        root c:/nginx/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;

        # Логика для update.ver
        location ~* ^/(dll/)?update\.ver$ {
            if ($ver ~ "^ep([6-9]|1[0-9])$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            if ($ver ~ "^v[3-8]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v3/dll/update.ver break;
            }
            if ($ver ~ "^v1[0-1]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/v10/dll/update.ver break;
            }
            if ($ver ~ "^v1[2-9]$") {
                rewrite ^/(dll/)?update\.ver$ /eset_upd/$ver/dll/update.ver break;
            }
            return 404;
        }

        # Обработка путей типа /ep9-rel-sta/
        location ~ ^/(?<rel_path>ep\d+-rel-sta|v\d+-rel-sta)/(?<file_path>.*)$ {
            # Определяем корневую директорию в зависимости от версии
            if ($ver ~ "^ep([6-9]|1[0-9])$") {
                root c:/nginx/html/data/$ver;
            }
            if ($ver ~ "^v[3-8]$") {
                root c:/nginx/html/data/v3;
            }
            if ($ver ~ "^v1[0-1]$") {
                root c:/nginx/html/data/v10;
            }
            if ($ver ~ "^v1[2-9]$") {
                root c:/nginx/html/data/$ver;
            }
            
            try_files /$rel_path/$file_path =404;
        }

        # Основной location для остальных файлов
        location / {
            try_files $uri $uri/ =404;
        }
    }
}
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]

depositaire
сержант
Сообщения: 163
Зарегистрирован: 2011-10-14 14:04:17

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение depositaire » 2025-05-05 10:14:12

оО офигеть, что вы тут устроили? Для nginx давно же был уже придуман рабочий конфиг. Зачем по новому то изобретать?

boot-a
ефрейтор
Сообщения: 51
Зарегистрирован: 2017-03-24 11:54:30
Контактная информация:

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение boot-a » 2025-05-05 13:33:19

Неужели только у меня update.ver попадает в переменную files_to_delete и удаляется при очистке старых файлов pyton скриптом ?

depositaire
сержант
Сообщения: 163
Зарегистрирован: 2011-10-14 14:04:17

шустрый скрипт скрипт зеркала NOD32

Непрочитанное сообщение depositaire » 2025-05-05 16:16:03

boot-a писал(а):
2025-05-05 13:33:19
Неужели только у меня update.ver попадает в переменную
Ща попробую у себя. Как-то не винде и не запускал его даже.

Попробовал на v3, базы полегче. Всё скачалось без проблем. Свалилось только на формировании файла html, но там лень копать.

Код: Выделить всё

[1;36m[2025-05-05 16:17:51] [0mТекущая папка D:\EsetUPDtool
[1;36m[2025-05-05 16:17:51] [0mtools.py:os_dir_separator: Используем платформу Windows
[1;32m[2025-05-05 16:17:51] [0mРежим обновления с официальных серверов (init_official.py)
[1;32m[2025-05-05 16:17:51] [0mВыбираем лучший официальный сервер для обновлений...
[1;36m[2025-05-05 16:17:52] [0mВыбран лучший официальный сервер для обновлений: um05.eset.com 48.382202784220375 ms
[1;32m[2025-05-05 16:17:52] [0m[v3] Обновляем вериию: ESET NOD32 Ver. 3-4, 6-8
[1;32m[2025-05-05 16:17:52] [0m[v3] В хранилище update.ver версии : 31147.0 d:\EsetUPDtool\update\eset_upd\v3\dll\update.ver
[1;36m[2025-05-05 16:17:52] [0m[v3] Скачиваем файл update.ver 
[1;32m[2025-05-05 16:17:52] [0m[v3] Сохраняем update.ver в  : D:\EsetUPDtool\tmp\update.ver

[1;32m[2025-05-05 16:17:52] [0m[v3] update.ver:   0%|[32m          [0m| 0.00/9.31k [00:00<?, ?B/s]
[1;32m[2025-05-05 16:17:52] [0m[v3] update.ver: 115kB [00:00, 25.4MB/s]                    
[1;32m[2025-05-05 16:17:53] [0m[v3] Версия баз у нас     : 31147.0
[1;32m[2025-05-05 16:17:53] [0m[v3] Версия баз на зеркале: 31147.0
[1;36m[2025-05-05 16:17:53] [0m[v3] Для версии антивируса v3 обновление баз с зеркала http://um05.eset.com не требуется
[1;36m[2025-05-05 16:17:53] [0m--------------------------------------------------
[1;36m[2025-05-05 16:17:53] [0mСкачано файлов для базы текущей версии : 1
[1;36m[2025-05-05 16:17:53] [0mРазмер скачанных файлов текущей версии : 115.5 KB
[1;36m[2025-05-05 16:17:53] [0mКол-во старых файлов базы удалено      : 0
[1;36m[2025-05-05 16:17:53] [0mОбщее кол-во попыток перекачать файл   : 0
[1;36m[2025-05-05 16:17:53] [0mВремя скачивания баз версии [v3]: 0.64 сек.
[1;36m[2025-05-05 16:17:53] [0mКол-во файлов в папке баз   [v3]: 435
[1;36m[2025-05-05 16:17:53] [0mРазмер папки с базами       [v3]: 337.3 MB
[1;36m[2025-05-05 16:17:53] [0m--------------------------------------------------




[1;36m[2025-05-05 16:17:53] [0m[1;36m----------------------------------------------------------------------[0m
[1;36m[2025-05-05 16:17:53] [0mВсего скачано файлов        : 1
[1;36m[2025-05-05 16:17:53] [0mРазмер всех скачанных файлов: 115.5 KB
[1;36m[2025-05-05 16:17:53] [0mПолный размер всех баз d:\EsetUPDtool\update\data : 337.3 MB
[1;36m[2025-05-05 16:17:53] [0mВремя выполнения скрипта: 1.97 сек.
[1;36m[2025-05-05 16:17:54] [0m[1;36m----------------------------------------------------------------------[0m

[1;35m[2025-05-05 16:17:54] [0mКол-во символов в сообщении Telegram : 494
Вложения
Снимок экрана 2025-05-05 161551.png
Снимок экрана 2025-05-05 161503.png