tarampampam / nod32-update-mirror

:large_orange_diamond: [WIP] ESET Nod32 Updates Mirror
MIT License
108 stars 50 forks source link

1.0.1.8 #46

Closed mr-butch closed 8 years ago

mr-butch commented 8 years ago

Шаги для воспроизведения проблемы (steps to reproduce)

  1. Повторный запуск скрипта с непустой папкой скачанных обновлений.

    Какое действие ожидалось (expected behaviour)

Расскажите, какое поведение от скрипта вы ожидали (tell us what should happen)

  1. Скачивание новых файлов обновлений, либо обновление существующих с пропуском ранее скачанных.

    Что произошло на самом деле (actual behaviour)

Расскажите что произошло на самом деле (tell us what happens instead)

  1. Скачиваются новые файлы, но на уже существующие выводится сообщение об ошибке.

    Например, "Successfully downloaded files: 3, skipped: 0, with errors: 85"

    Данные системы (system information)

Операционная система (operating system):

$ cat /proc/version
Linux version 2.6.22.19 (root@asus) (gcc version 4.2.3) #1 Fri Jan 15 08:41:55 CST 2016

Bash:

$ bash --version
GNU bash, version 4.3.42(1)-release (mipsel-openwrt-linux-gnu)

wget / curl:

$ wget -V
GNU Wget 1.17.1 built on linux-gnu.
+digest -gpgme +https +ipv6 -iri +large-file -metalink -nls +ntlm
+opie -psl +ssl/openssl

$ curl -V
curl 7.48.0 (mipsel-openwrt-linux-gnu) libcurl/7.48.0 OpenSSL/1.0.2h zlib/1.2.8
Protocols: file ftp ftps http https imap imaps pop3 pop3s rtsp smtp smtps tftp
Features: IPv6 Largefile SSL libz

Настройки (settings):

Настройки скрипта (script settings):

$ cat ./settings.conf ./conf.d/*.conf | grep -v -e '^#' -e '^$'
export NOD32MIRROR_MIRROR_DIR="$HOME/nod32mirror";
export NOD32MIRROR_SERVER_0='http://update.eset.com:80/eset_upd/ username password';
export NOD32MIRROR_SERVER_1='http://nod32.someserver.com/';
export NOD32MIRROR_SERVER_2='http://someserver2.com/nod32/';
export NOD32MIRROR_LANGUAGES='1033 1049';
export NOD32MIRROR_CURL_BIN='false';
export NOD32MIRROR_TEST_URI='http://update.eset.com:80/v8-rel-sta/mod_010_smon_1036/em010_32_l0.nup';
export NOD32MIRROR_TIMESTAMP_FILE_NAME='lastevent.txt';
export NOD32MIRROR_VERSION_FILE_NAME='version.txt';
export NOD32MIRROR_COLOR_OUTPUT=1;
export NOD32MIRROR_USE_FREE_KEY=1;
export NOD32MIRROR_MIRROR_DIR="/opt/etc/nod32-mirror/nod32mirror";
export NOD32MIRROR_TEMP_DIR="/opt/etc/nod32-mirror/tmp";
export NOD32MIRROR_URI_PATH='NodUpDate';
export NOD32MIRROR_SERVER_0='http://update.eset.com:80/eset_upd/ username password';
export NOD32MIRROR_LANGUAGES='1033 1049';
export NOD32MIRROR_LOG_PATH="/opt/etc/nod32-mirror/.nod32keys/nod32mirror.log";
export NOD32MIRROR_TEST_URI='http://update.eset.com:80/v8-rel-sta/mod_010_smon_1036/em010_32_l0.nup';
export NOD32MIRROR_TIMESTAMP_FILE_NAME='lastevent.txt';
export NOD32MIRROR_VERSION_FILE_NAME='version.txt';

Лог-файл (log-file):

$ cat ./nod32mirror.log | tail -n 30
[2016-07-19/06:30:01] [Info] Requesting for a free key.. 
[2016-07-19/06:30:02] [Notice] Starting mirroring "http://update.eset.com:80/eset_upd/" -> "/opt/etc/nod32-mirror/nod32mirror"
[2016-07-19/06:30:02] [Info] Download versions file (http://update.eset.com:80/eset_upd/update.ver).. 
[2016-07-19/06:30:03] [Info] Versions file packed by RAR, unpacking..
[2016-07-19/06:30:04] [Info] Parsing & writing new (/opt/etc/nod32-mirror/nod32mirror/update.ver) versions file 
[2016-07-19/06:33:03] [Notice] Mirroring "http://update.eset.com:80/eset_upd/" -> "/opt/etc/nod32-mirror/nod32mirror" complete!
[2016-07-19/06:33:03] [Info] Successfully downloaded files: 2, skipped: 0, with errors: 87
[2016-07-19/06:33:03] [Notice] Starting mirroring "http://update.eset.com:80/eset_upd/pcu/" -> "/opt/etc/nod32-mirror/nod32mirror/pcu"
[2016-07-19/06:33:03] [Info] Download versions file (http://update.eset.com:80/eset_upd/pcu/update.ver).. 
[2016-07-19/06:33:04] [Info] Versions file packed by RAR, unpacking..
[2016-07-19/06:33:05] [Info] Parsing & writing new (/opt/etc/nod32-mirror/nod32mirror/pcu/update.ver) versions file 
[2016-07-19/06:35:43] [Notice] Mirroring "http://update.eset.com:80/eset_upd/pcu/" -> "/opt/etc/nod32-mirror/nod32mirror/pcu" complete!
[2016-07-19/06:35:43] [Info] Successfully downloaded files: 0, skipped: 0, with errors: 82
[2016-07-19/06:35:43] [Notice] Starting mirroring "http://update.eset.com:80/eset_upd/v4/" -> "/opt/etc/nod32-mirror/nod32mirror/v4"
[2016-07-19/06:35:43] [Info] Download versions file (http://update.eset.com:80/eset_upd/v4/update.ver).. 
[2016-07-19/06:35:44] [Info] Versions file packed by RAR, unpacking..
[2016-07-19/06:35:45] [Info] Parsing & writing new (/opt/etc/nod32-mirror/nod32mirror/v4/update.ver) versions file 
[2016-07-19/06:38:15] [Notice] Mirroring "http://update.eset.com:80/eset_upd/v4/" -> "/opt/etc/nod32-mirror/nod32mirror/v4" complete!
[2016-07-19/06:38:15] [Info] Successfully downloaded files: 2, skipped: 0, with errors: 73
[2016-07-19/06:38:15] [Notice] Starting mirroring "http://update.eset.com:80/eset_upd/v5/" -> "/opt/etc/nod32-mirror/nod32mirror/v5"
[2016-07-19/06:38:15] [Info] Download versions file (http://update.eset.com:80/eset_upd/v5/update.ver).. 
[2016-07-19/06:38:16] [Info] Versions file packed by RAR, unpacking..
[2016-07-19/06:38:17] [Info] Parsing & writing new (/opt/etc/nod32-mirror/nod32mirror/v5/update.ver) versions file 
[2016-07-19/06:41:06] [Notice] Mirroring "http://update.eset.com:80/eset_upd/v5/" -> "/opt/etc/nod32-mirror/nod32mirror/v5" complete!
[2016-07-19/06:41:06] [Info] Successfully downloaded files: 2, skipped: 0, with errors: 81
[2016-07-19/06:41:06] [Notice] Starting mirroring "http://update.eset.com:80/eset_upd/v6/" -> "/opt/etc/nod32-mirror/nod32mirror/v6"
[2016-07-19/06:41:06] [Info] Download versions file (http://update.eset.com:80/eset_upd/v6/update.ver).. 
[2016-07-19/06:41:07] [Info] Versions file packed by RAR, unpacking..
[2016-07-19/06:41:08] [Info] Parsing & writing new (/opt/etc/nod32-mirror/nod32mirror/v6/update.ver) versions file 
[2016-07-19/06:43:37] [Notice] Mirroring "http://update.eset.com:80/eset_upd/v6/" -> "/opt/etc/nod32-mirror/nod32mirror/v6" complete!
[2016-07-19/06:43:37] [Info] Successfully downloaded files: 2, skipped: 0, with errors: 84
[2016-07-19/06:43:38] [Notice] Starting mirroring "http://update.eset.com:80/eset_upd/v7/" -> "/opt/etc/nod32-mirror/nod32mirror/v7"
[2016-07-19/06:43:38] [Info] Download versions file (http://update.eset.com:80/eset_upd/v7/update.ver).. 
[2016-07-19/06:43:38] [Info] Versions file packed by RAR, unpacking..
[2016-07-19/06:43:39] [Info] Parsing & writing new (/opt/etc/nod32-mirror/nod32mirror/v7/update.ver) versions file 
[2016-07-19/06:46:03] [Notice] Mirroring "http://update.eset.com:80/eset_upd/v7/" -> "/opt/etc/nod32-mirror/nod32mirror/v7" complete!
[2016-07-19/06:46:03] [Info] Successfully downloaded files: 2, skipped: 0, with errors: 81
[2016-07-19/06:46:03] [Notice] Starting mirroring "http://update.eset.com:80/eset_upd/v8/" -> "/opt/etc/nod32-mirror/nod32mirror/v8"
[2016-07-19/06:46:03] [Info] Download versions file (http://update.eset.com:80/eset_upd/v8/update.ver).. 
[2016-07-19/06:46:04] [Info] Versions file packed by RAR, unpacking..
[2016-07-19/06:46:05] [Info] Parsing & writing new (/opt/etc/nod32-mirror/nod32mirror/v8/update.ver) versions file 
[2016-07-19/06:48:35] [Notice] Mirroring "http://update.eset.com:80/eset_upd/v8/" -> "/opt/etc/nod32-mirror/nod32mirror/v8" complete!
[2016-07-19/06:48:35] [Info] Successfully downloaded files: 2, skipped: 0, with errors: 82
[2016-07-19/06:48:35] [Notice] Starting mirroring "http://update.eset.com:80/eset_upd/v9/" -> "/opt/etc/nod32-mirror/nod32mirror/v9"
[2016-07-19/06:48:36] [Info] Download versions file (http://update.eset.com:80/eset_upd/v9/update.ver).. 
[2016-07-19/06:48:37] [Info] Versions file packed by RAR, unpacking..
[2016-07-19/06:48:38] [Info] Parsing & writing new (/opt/etc/nod32-mirror/nod32mirror/v9/update.ver) versions file 
[2016-07-19/06:52:13] [Notice] Mirroring "http://update.eset.com:80/eset_upd/v9/" -> "/opt/etc/nod32-mirror/nod32mirror/v9" complete!
[2016-07-19/06:52:13] [Info] Successfully downloaded files: 4, skipped: 0, with errors: 108
[2016-07-19/06:52:13] [Notice] Starting mirroring "http://update.eset.com:80/eset_upd/v10/" -> "/opt/etc/nod32-mirror/nod32mirror/v10"
[2016-07-19/06:52:13] [Info] Download versions file (http://update.eset.com:80/eset_upd/v10/update.ver).. 
[2016-07-19/06:52:13] [Info] Versions file packed by RAR, unpacking..
[2016-07-19/06:52:15] [Info] Parsing & writing new (/opt/etc/nod32-mirror/nod32mirror/v10/update.ver) versions file 
[2016-07-19/06:55:43] [Notice] Mirroring "http://update.eset.com:80/eset_upd/v10/" -> "/opt/etc/nod32-mirror/nod32mirror/v10" complete!
[2016-07-19/06:55:43] [Info] Successfully downloaded files: 4, skipped: 0, with errors: 109
[2016-07-19/06:55:43] [Notice] Starting mirroring "http://update.eset.com:80/eset_upd/v11/" -> "/opt/etc/nod32-mirror/nod32mirror/v11"
[2016-07-19/06:55:43] [Info] Download versions file (http://update.eset.com:80/eset_upd/v11/update.ver).. 
[2016-07-19/06:55:44] [Info] Timestamp file created (lastevent.txt)
[2016-07-19/06:55:44] [Info] Total updates (*.nup) files count: 810 file(s)
[2016-07-19/06:55:44] [Info] Total updates (*.nup) files size: 1385.2M
[2016-07-19/06:55:45] [Info] Mirror directory size is 1.4G

nod32mirror.log.txt

***log Вывод скрипта на экран

/opt/etc/nod32-mirror/include/bootstrap.sh: line 61: id: command not found
[06:30:01] Requesting for a free key.. Success
[06:30:02] Starting mirroring "http://update.eset.com:80/eset_upd/" -> "/opt/etc/nod32-mirror/nod32mirror"
[06:30:02] Download versions file (http://update.eset.com:80/eset_upd/update.ver).. Success
[06:30:03] Versions file packed by RAR, unpacking.. Success
[06:30:04] Parsing & writing new (/opt/etc/nod32-mirror/nod32mirror/update.ver) versions file (dots = skipped sections)..............
[06:32:10] Download file "http://update.eset.com:80/v3-rel-sta/mod_041_w10upgrade_1000/em041_32_l0.nup" (1 of 89).. Downloading file error
[06:32:11] Download file "http://update.eset.com:80/v3-rel-sta/mod_041_w10upgrade_1001/em041_32_l1.nup" (2 of 89).. Downloading file error
[06:32:11] Download file "http://update.eset.com:80/v3-rel-sta/mod_041_w10upgrade_1007/em041_32_l2.nup" (3 of 89).. Downloading file error
[06:32:11] Download file "http://update.eset.com:80/v3-rel-sta/mod_000_loader_1102/em000_32_l0.nup" (4 of 89).. Downloading file error
[06:32:12] Download file "http://update.eset.com:80/v3-rel-sta/mod_000_loader_1102/em000_64_l0.nup" (5 of 89).. Downloading file error
[06:32:13] Download file "http://update.eset.com:80/v3-rel-sta/mod_001_perseus_1737/em001_32_l0.nup" (6 of 89).. Downloading file error
[06:32:13] Download file "http://update.eset.com:80/v3-rel-sta/mod_001_perseus_1741/em001_32_l1.nup" (7 of 89).. Downloading file error
[06:32:13] Download file "http://update.eset.com:80/v3-rel-sta/mod_001_perseus_1767/em001_32_l2.nup" (8 of 89).. Downloading file error
[06:32:14] Download file "http://update.eset.com:80/v3-rel-sta/mod_002_engine_20209/em002_32_l0.nup" (9 of 89).. Downloading file error
[06:32:14] Download file "http://update.eset.com:80/v3-rel-sta/mod_002_engine_29592/em002_32_l1.nup" (10 of 89).. Downloading file error и т.д.

16.07.19-06.30.txt

tarampampam commented 8 years ago

Согласно указанным вами данным проблема не воспроизводится. Проверьте права доступа к файлам, разрешений пользователя, selinux (если установлен и активен).

mr-butch commented 8 years ago

Что необходимо еще прислать, чтобы было более ясно и проблема воспроизвелась? Все тоже самое с выставленным DEBUG=1? Права на файл, например: -rw-rw-rw- 1 admin root 6741884 Jul 24 06:36 eav_nt32_enu.nup Запускается от admin через cron. Запуск вручную приводит к тем же ошибкам загрузки существующих файлов, а не пропускам их. Возможно некие ключи wget у меня не поддерживаются, которые используете Вы?

tarampampam commented 8 years ago

Правда, не знаю. Можете прислать мне на почту данные для доступа по ssh - попробую разобраться на месте.

stigory commented 8 years ago

В точности такое же поведение скрипта. Запускал на чистой виртуалке с Ubuntu 16.04.1 LTS Скрипт запускается в домашней папке пользователя. Повторный запуск приводит к тому, что файлы, которые обновились на серверах, скачиваются со статусом SUCCESS, а которые не обновлялись вместо того чтобы иметь статус SKIPPED выводятся как "Downloading file error". Если из целевой папки очистить файлы, то первый запуск скрипта пройдет как положено (выкачается все без ошибок), а повторные запуски повторятся с ошибками.

tarampampam commented 8 years ago

Дебаг-лог в студию, пожалуйста

stigory commented 8 years ago

Пожалуйста.

cat /proc/version
Linux version 4.4.0-21-generic (buildd@lgw01-21) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016

 bash --version
GNU bash, версия 4.3.46(1)-release (x86_64-pc-linux-gnu)

 wget -V
GNU Wget 1.17.1 для linux-gnu.

curl -V
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
cat ./settings.conf ./conf.d/*.conf | grep -v -e '^#' -e '^$'
export NOD32MIRROR_COLOR_OUTPUT=1;
export NOD32MIRROR_USE_FREE_KEY=1;
export NOD32MIRROR_MIRROR_DIR="$HOME/webroot/download";
export NOD32MIRROR_TEMP_DIR="$HOME/tmp";
export NOD32MIRROR_SERVER_0='http://update.eset.com:80/eset_upd/ username password';
export NOD32MIRROR_SERVER_1='http://nod32.someserver.com/';
export NOD32MIRROR_SERVER_2='http://someserver2.com/nod32/';
export NOD32MIRROR_PLATFORMS='__ALL__';
export NOD32MIRROR_TYPES='__ALL__';
export NOD32MIRROR_LANGUAGES='1033 1049';
export NOD32MIRROR_LOG_PATH="$HOME/nod32mirror.log";
export NOD32MIRROR_CURL_BIN='false';
export NOD32MIRROR_TEST_URI='http://update.eset.com:80/v8-rel-sta/mod_010_smon_1036/em010_32_l0.nup';
export NOD32MIRROR_TIMESTAMP_FILE_NAME='lastevent.txt';
export NOD32MIRROR_VERSION_FILE_NAME='version.txt';

В nod32mirror.log я включил вывод с DEBUG: nod32mirror.txt

tarampampam commented 8 years ago

Недостаточно дебаг-информации по причине того, что скрипт сам её ограничивает. Пойдем следующим путём:

А так же скажите - хоть и выводится сообщение об ошибке - но зеркало-то работает успешно? Это сообщение не должно влиять на его работу, так как это - вопрос лишь косметики

stigory commented 8 years ago

А так же скажите - хоть и выводится сообщение об ошибке - но зеркало-то работает успешно? Это сообщение не должно влиять на его работу, так как это - вопрос лишь косметики

Да, зеркало работает. Пока гоняю в тестовой лабе из двух виртуалок: Ubuntu/nod32mirror + Win8.1/nod4 Nod успешно употребляет предлагаемые обновления. Но, до этого момента не было уверенности, что это - всего-лишь косметическая ругань. Лаба крутится вторые сутки.

P.S. - дебаг пришлю чуть позже.

tarampampam commented 8 years ago

Это только косметика, не переживайте. Разные версии wget отдают разный ответ, но переданную команду выполняют. Как будет полный дебаг - попробую исправить и это

stigory commented 8 years ago

Я нисколько не переживаю. ;) Наоборот, мне настолько нравится ваш подход к этому скрипту, что возникло желание покопаться в его кишочках. Не смотря, на мои жалкие навыки в баше.

network.sh поправил, прогнал еще одну итерацию. В логе получил единственную повторяющуюся строку:

[2016-08-12/16:50:02] [Debug] Wget result (Setting --cache (cache) to off

Меняется только время.

tarampampam commented 8 years ago

Т.е. код сейчас выглядит:

        result=$("$NOD32MIRROR_WGET_BIN" ... 2>&1);
        local debug_data=$(head -n 90 <<< "$result");
        ui_message 'debug' 'Wget result' "$result";
        case "$result" in

И нет полного дебага? Не может быть такого. Ну давай сделаем:

        result=$("$NOD32MIRROR_WGET_BIN" ... 2>&1);
        local debug_data=$(head -n 999 <<< "$result");
        ui_message 'debug' 'Wget result' "$debug_data";
        case "$result" in

Гори оно всё огнём

stigory commented 8 years ago

Код выглядит именно так. Меня сбила с толку просьба искать паттерн. Ну, я grep'ом и прошелся. Прошу прощения. Полный вывод wget выглядит так:

Saving HSTS entries to /home/stigory/.wget-hsts)
[2016-08-12/17:06:40] [Debug] Wget result (Setting --cache (cache) to off
Setting --timestamping (timestamping) to 1
Setting --use-server-timestamps (useservertimestamps) to 0
Setting --user-agent (useragent) to ESS Update (Windows; U; 32bit; VDB 21927; BPC 7.0.527.0; OS: 5.1.2600 SP 3.0 NT; CH 1.1; LNG 1049; x32c; APP eavbe; BEO 1; ASP 0.10; FW 0.0; PX 0; PUA 0;
RA 0)
Setting --connect-timeout (connecttimeout) to 5
Setting --tries (tries) to 2
Setting --http-user (httpuser) to EAV-0169960816
Setting --http-password (httppassword) to 8d4d25shdm
Setting --directory-prefix (dirprefix) to /home/stigory/webroot/download/v10
DEBUG output created by Wget 1.17.1 on linux-gnu.
tarampampam commented 8 years ago

Не может быть такого. Ранее лог был:

[2016-08-12/13:55:33] [Debug] Wget result (Setting --cache (cache) to off
Setting --timestamping (timestamping) to 1
Setting --use-server-timestamps (useservertimestamps) to 0
Setting --user-agent (useragent) to ESS Update (Windows; U; 32bit; VDB 11544; BPC 6.0.544.0; OS: 5.1.2600 SP 3.0 NT; CH 1.1; LNG 1049; x32c; APP eavbe; BEO 1; ASP 0.10; FW 0.0; PX 0; PUA 0; RA 0)
Setting --connect-timeout (connecttimeout) to 5
Setting --tries (tries) to 2
Setting --http-user (httpuser) to EAV-0169426161
Setting --http-password (httppassword) to t6jjjdfusn
Setting --directory-prefix (dirprefix) to /home/stigory/webroot/download/v4
DEBUG output created by Wget 1.17.1 on linux-gnu.

Reading HSTS entries from /home/stigory/.wget-hsts
URI encoding = 'ANSI_X3.4-1968'
converted 'http://update.eset.com:80/v4-rel-sta/mod_021_horus_7950/em021_32_l0.nup' (ANSI_X3.4-1968) -> 'http://update.eset.com:80/v4-rel-sta/mod_021_horus_7950/em021_32_l0.nup' (UTF-8)
--2016-08-12 13:55:32--  http://update.eset.com/v4-rel-sta/mod_021_horus_7950/em021_32_l0.nup
Host 'update.eset.com' has not issued a general basic challenge.
Resolving update.eset.com (update.eset.com)... 38.90.226.36
Caching update.eset.com => 38.90.226.36
Connecting to update.eset.com (update.eset.com)|38.90.226.36|:80... connected.
Created socket 3.
Releasing 0x0000555e21f78180 (new refcount 1).

---request begin---
GET /v4-rel-sta/mod_021_horus_7950/em021_32_l0.nup HTTP/1.1
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
If-Modified-Since: Thu, 11 Aug 2016 04:50:08 GMT
User-Agent: ESS Update (Windows; U; 32bit; VDB 11544; BPC 6.0.544.0; OS: 5.1.2600 SP 3.0 NT; CH 1.1; LNG 1049; x32c; APP eavbe; BEO 1; ASP 0.10; FW 0.0; PX 0; PUA 0; RA 0)
Accept: */*
Accept-Encoding: identity
Host: update.eset.com
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response... 
---response begin---
HTTP/1.1 401 Unauthorized
Server: nginx
Date: Fri, 12 Aug 2016 03:55:32 GMT
Content-Type: text/html
Content-Length: 188
Connection: keep-alive
WWW-Authenticate: Basic realm="NOD32 Engine Updates"

---response end---
401 Unauthorized
Registered socket 3 for persistent reuse.
Skipping 188 bytes of body: [<html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx</center>
</body>
</html>
] done.
Auth scheme found 'Basic'
Auth param list ' realm="NOD32 Engine Updates"'
Auth param realm=NOD32 Engine Updates
Authentication selected: Basic realm="NOD32 Engine Updates"
Inserted 'update.eset.com' into basic_authed_hosts
Reusing existing connection to update.eset.com:80.
Reusing fd 3.

---request begin---
GET /v4-rel-sta/mod_021_horus_7950/em021_32_l0.nup HTTP/1.1
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
If-Modified-Since: Thu, 11 Aug 2016 04:50:08 GMT
User-Agent: ESS Update (Windows; U; 32bit; VDB 11544; BPC 6.0.544.0; OS: 5.1.2600 SP 3.0 NT; CH 1.1; LNG 1049; x32c; APP eavbe; BEO 1; ASP 0.10; FW 0.0; PX 0; PUA 0; RA 0)
Accept: */*
Accept-Encoding: identity
Host: update.eset.com
Connection: Keep-Alive
Authorization: Basic RUFWLTAxNjk0MjYxNjE6dDZqampkZnVzbg==

---request end---
HTTP request sent, awaiting response... 
---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 12 Aug 2016 03:55:33 GMT
Content-Type: application/octet-stream
Content-Length: 5725366
Last-Modified: Wed, 10 Aug 2016 00:00:00 GMT
Connection: keep-alive
ETag: "57aa6e80-575cb6"
Accept-Ranges: bytes

---response end---
200 OK)

И он ограничен 90 строками, что мало. Верни код в вид, какой он был изначально, изменив лишь:

local debug_data=$(head -n 90 <<< "$result");

на:

local debug_data=$(head -n 999 <<< "$result");
tarampampam commented 8 years ago

Информации от вас не дождаться? Закрываю тикет?

stigory commented 8 years ago

Прошу прощения. Иногда приходится выпадать из-за ноутбука.

На данный момент запускал тест со следующими параметрами: NOD32MIRROR_DEBUG_MODE=1

Код в network.sh выглядит так:

local debug_data=$(head -n 999 <<< "$result");
ui_message 'debug' 'Wget result' "$debug_data";

Полный лог в файле. nod32mirror.log.txt

mr-butch commented 8 years ago

Оооо, я не один оказывается. Рад что вы таки начали работу над нашей проблемой. Если будут нужны дополнительные логи, постараюсь помочь своими.

tarampampam commented 8 years ago

Да только толку-то.. В дебаг-логе ничего внятного, подумаю как быть

stigory commented 8 years ago

Поизучал логи на досуге. Возник один вопрос: А чем обусловлена логика при которой скрипт сначала пытается вытянуть с сервера файл без авторизации, а после получения 401 уже повторяет попытку, указав логин/пароль?

Единственное объяснение, которое приходит в голову - вы хотели получить определенную гибкость при работе с неизвестным количеством и видом серверов обновлений. Но зачем это делать с каждым файлом? Не проще ли однократно определить тип авторизации при первом обращении к серверу и затем работать уже без повторных проверок? И не может ли значение, возвращаемое при первой попытке (401), повлиять на выдачу в лог, если , допустим его не перезапишет успешное значение, которое вернется во второй попытке?

P.S. - прошу прощения за подобные вопросы. Гадать по логам, вместо того чтобы глянуть в код - не есть хорошо. Но с моим опытом, я могу зависнуть в нем очень надолго.

tarampampam commented 8 years ago

Постскриптум очень правильный. Сперва гляньте код, а после этого вдавайтесь в рассуждения.

mr-butch commented 8 years ago

Есть ли идеи как выловить ошибку?

tarampampam commented 8 years ago

Нет ещё. Те, что есть - не лучше того как сделано всё сейчас.

volde-mar commented 8 years ago

Для себя проблему лифтинга решил так, добавив ответ wgetа на 101 skipped *[Ss]erver\ ignored*) return 101;;

...
case "$result" in
 *[Nn]ot\ retrieving*) return 101;;
 *[Oo]mitting\ download*) return 101;;
 *[Nn]ot\ modified\ on\ server*) return 101;;
 *[Ss]erver\ ignored*)  return 101;;
 *[Ss]aved*) return 100;;
 *ERROR\ 404*) return 12;;
 *) return 10;;
...
mr-butch commented 8 years ago

Приветствую. Появились ли мысли по исправлению ошибки загрузки уже существующих файлов?

tarampampam commented 8 years ago

@mr-butch, слушай, а патч что был описан @volde-mar ты опробовал на себе? Пока занят двумя другими проектами, разворачивать всю среду для полноценного тестирования чертовски лень. Если если есть возможность - попробуй его на себе - и если подтвердишь что твою проблему он решает - добавлю его в master ветку.

mr-butch commented 8 years ago

Я рассматривал это как лифтинг, ну да ладно.. Да, это работает, вместо "Downloading file error" выводит "Skipped", подтверждаю.

tarampampam commented 8 years ago

Принято, закрываю тикет