Очередной скрипт зеркала NOD32

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

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

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
arez1978
ефрейтор
Сообщения: 69
Зарегистрирован: 2012-03-15 7:20:22

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение arez1978 » 2014-07-10 7:20:20

depositaire писал(а):А как с путями быть? в файле там идёт file=ees_nt64_***.nup а в update.ver там обычно /v5-rel-sta/pcu_win_***_home/
Клиент будет искать в корне web сервера.

Хостинговая компания 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/

nanit
проходил мимо
Сообщения: 6
Зарегистрирован: 2014-07-09 9:39:16
Откуда: Королёв, Россия

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение nanit » 2014-07-10 7:27:51

arez1978 писал(а):
depositaire писал(а):А как с путями быть? в файле там идёт file=ees_nt64_***.nup а в update.ver там обычно /v5-rel-sta/pcu_win_***_home/
Клиент будет искать в корне web сервера.
Не факт. Он будет искать по тому пути, который у него прописан в качестве источника обновлений,
а он задаётся на место, где лежит update.ver, например http://site.example.com/eset_upd/v5. И оттуда же он и будет брать файлы.

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

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение depositaire » 2014-07-10 9:38:45

В итоге просто сделал файлик с описанием того где лежат обновления и добавил строчку в manual_start что бы дописывал в /eset_upd/update.ver После обновления ничего не удаляется и Nup'ы лежат на своих местах. Клиентские компы сразу увидели обновы.

hexbear
рядовой
Сообщения: 19
Зарегистрирован: 2012-07-16 12:19:44
Откуда: Донецк, Украина

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение hexbear » 2014-07-31 15:14:03

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

[2014-07-31] [15:05:57] Run script 1.0.140704
[2014-07-31] [15:06:07] Unhandled exception [HTTP/1.1 404 Not Found]
[2014-07-31] [15:06:07] No working keys were found!
[2014-07-31] [15:06:11] Unhandled exception [HTTP/1.1 404 Not Found]
[2014-07-31] [15:06:11] No working keys were found!
[2014-07-31] [15:06:11] No working keys were found! The script has been stopped!
[2014-07-31] [15:06:11] Total working time: 14 seconds
[2014-07-31] [15:06:11] Stop script
переехал на новый впс, все перенес, не пойму в чем проблема, ключ рабочий. Как понять где проблема??
сорри, пока писал, решил проверить на старом, тоже не обновляется. Это у всех так?

ak42
рядовой
Сообщения: 38
Зарегистрирован: 2011-08-19 11:40:32

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение ak42 » 2014-07-31 15:21:11

Да, у меня тоже самое.

hexbear
рядовой
Сообщения: 19
Зарегистрирован: 2012-07-16 12:19:44
Откуда: Донецк, Украина

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение hexbear » 2014-07-31 15:24:05

с антивирусника обновляется нормально, похоже, палят юзерагент.

ak42
рядовой
Сообщения: 38
Зарегистрирован: 2011-08-19 11:40:32

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение ak42 » 2014-07-31 15:38:38

Надо подставить нужный юзер-агент или отключить проверку ключа на валидность

Аватара пользователя
raven428
проходил мимо
Сообщения: 6
Зарегистрирован: 2013-03-18 10:25:04
Откуда: Челябинск

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение raven428 » 2014-07-31 19:44:44

в файлик Mirror.class.php после

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

				if(strstr($header[0],"200") !== false) {
					return true;
				}
добавляем

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

				if(strstr($header[0],"404") !== false) {
					return true;
				}
и всё работает, хотя это и неправильное решение. по идее надо get_headers заменить на что-то, но я не особо разбираюсь в php. если кто знает, подскажите.
too much raVen over paradise...

hexbear
рядовой
Сообщения: 19
Зарегистрирован: 2012-07-16 12:19:44
Откуда: Донецк, Украина

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение hexbear » 2014-07-31 20:44:31

Чудеса, на старом работает, на новом - нет:

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

[2014-07-31] [20:37:15] Run script 1.0.140704
[2014-07-31] [20:37:21] Use valid key [EAV****:****]
[2014-07-31] [20:37:28] [ver. 3] No actual update servers were found!
[2014-07-31] [20:37:36] [ver. 4] No actual update servers were found!
[2014-07-31] [20:37:43] [ver. 5] No actual update servers were found!
[2014-07-31] [20:37:51] [ver. 6] No actual update servers were found!
[2014-07-31] [20:37:58] [ver. 7] No actual update servers were found!
[2014-07-31] [20:37:58] Generating index.html...
[2014-07-31] [20:37:58] Total working time: 43 seconds
[2014-07-31] [20:37:58] Stop script
Было бы неплохо, выводить, на каком шаге споткнулся...

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

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение depositaire » 2014-08-01 7:05:51

А если поднять log_level? Обычно скрипт довольно капитально ругается если что то не работает.

hexbear
рядовой
Сообщения: 19
Зарегистрирован: 2012-07-16 12:19:44
Откуда: Донецк, Украина

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение hexbear » 2014-08-01 7:41:14

Спасибо, разобрался, я накуевертил в php файлах, вернул все как было - заработало ))

babangid
проходил мимо
Сообщения: 1
Зарегистрирован: 2012-11-29 17:05:08

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение babangid » 2014-08-01 11:58:53

hexbear писал(а):

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

[2014-07-31] [15:05:57] Run script 1.0.140704
[2014-07-31] [15:06:07] Unhandled exception [HTTP/1.1 404 Not Found]
[2014-07-31] [15:06:07] No working keys were found!
[2014-07-31] [15:06:11] Unhandled exception [HTTP/1.1 404 Not Found]
[2014-07-31] [15:06:11] No working keys were found!
[2014-07-31] [15:06:11] No working keys were found! The script has been stopped!
[2014-07-31] [15:06:11] Total working time: 14 seconds
[2014-07-31] [15:06:11] Stop script
переехал на новый впс, все перенес, не пойму в чем проблема, ключ рабочий. Как понять где проблема??
Проблема, по-видимому, в том, что тестирование валидности ключа в скрипте проводится по анализу ответа на запрос загрузки файлов, определенных как тестовые в \Nod32MS\inc\init.php:
...
define('TESTKEY_PATH_NOD', "/v3-rel-sta/mod_000_loader/em000_32_l0.nup");
define('TESTKEY_PATH_ESS', "/v3-rel-sta/mod_010_smon/em010_32_l1.nup");
...
Функция get_headers() возвращает ошибку 404 - файл не найден, так как такого(их) файлов действительно теперь с 29.07.2014 - 30.07.2014 на северах Eset в этой(этих) папках действительно нет! Зато в этих же числах прошедшего месяца появились новые папки в файловой структуре, где находятся подобные файлы, а именно и соответственно:
/v3-rel-sta/mod_000_loader_1072/em000_32_l0.nup и
/v3-rel-sta/mod_010_smon_1034/em010_32_l1.nup

Таким образом, ИМХО, для решения проблемы достаточно скорректировать TESTKEY_PATH_NOD и TESTKEY_PATH_ESS в \Nod32MS\inc\init.php следующим образом:
...
define('TESTKEY_PATH_NOD', "/v3-rel-sta/mod_000_loader_1072/em000_32_l0.nup");
define('TESTKEY_PATH_ESS', "/v3-rel-sta/mod_010_smon_1034/em010_32_l1.nup");
...
и все будет хорошо :smile:

З.Ы.
Юзерагент абсолютно ни при чем в чем легко убедиться с помощью wget.
Сорри за многабуков.


madal
проходил мимо

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение madal » 2014-08-01 22:22:28

а можно данный скрипт приспособить под openwrt, c fakeroot-ом?

SPSPaWn
проходил мимо
Сообщения: 9
Зарегистрирован: 2012-12-01 11:05:47

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение SPSPaWn » 2014-08-02 11:18:23

Заведомо правильные ключи не работают, есть решение?

KVAn
рядовой
Сообщения: 10
Зарегистрирован: 2013-09-26 17:24:11

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение KVAn » 2014-08-02 12:33:31

SPSPaWn писал(а):Заведомо правильные ключи не работают, есть решение?
Решение в предыдущих последних постах.
сначала испробовал вот это:
http://forum.lissyara.su/viewtopic.php? ... 50#p363227
а потом вот это:
http://forum.lissyara.su/viewtopic.php? ... 50#p363243

Спасибо пофиксившим - все работает! :good:

unix3dgforce
проходил мимо
Сообщения: 8
Зарегистрирован: 2014-01-25 10:23:06

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение unix3dgforce » 2014-08-04 17:37:55

Работает то работает! но это не выход придётся вносить изменения в пару класов так как ESET сменил архитектуру хранения файлов у себя на сервере и теперь при перезапуске скрипта он выкачивает опять обновления и плодит лишние папки вида mod_002_engine_ХХХХХ и etc.

Выход внести изменения в класс Mirror а именно в приватную функцию parse_update_ver что бы на выходе получить имена каталогов без последних цифр, ну и конечно внести изменения в файлы update.ver

evsey
рядовой
Сообщения: 31
Зарегистрирован: 2013-02-06 9:33:17

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение evsey » 2014-08-05 9:08:44

Скиньте скрипт, у автора опять недоступен сервер.

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

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение depositaire » 2014-08-05 9:55:47

Потерпите, обычно это не долго.

unix3dgforce
проходил мимо
Сообщения: 8
Зарегистрирован: 2014-01-25 10:23:06

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение unix3dgforce » 2014-08-05 19:26:45

!!!МНОГО БУКВ!!!!
Частично переделал Mirror.class.php
и так по порядку с PHP давно не работал так что за код не пинайте может кто то возьмется его оптимизировать
в static private function parse_update_ver($file, $server, $ver = null) после

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

			$tmp = array('size','file','version');
			foreach($tmp as $varible) {
				if(substr($row, 0, strlen($varible)) == $varible) {
					$res[$varible][$pos] = trim(substr($row, strlen($varible)+1));
				}
			}
		}

вписываем

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

		$fileupdate = $file;
		$f = fopen($fileupdate, 'w');
		for ($i=0; $i < count($update); $i++){
			if (preg_match("/file/",$update[$i])){
				$rebuild_update[$i] = str_replace("/", DS, substr(dirname($update[$i]),0,strripos(dirname($update[$i]),"_"))) . DS . basename($update[$i]);
				fwrite($f, $rebuild_update[$i]); 
				}
			else {
				$rebuild_update[$i] = $update[$i];
				fwrite($f, $rebuild_update[$i]);
				}
		}
		fclose($f);
на выходе имеем перезаписанный фаил update.ver с по правлеными ссылками типа file=/v5-rel-sta/mod_000_loader/em000_32_l0.nup без лишнего мусора (Номера билда который постоянно меняется) который передаётся клиенту.

в download_signature

Вместо

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

$res = str_replace("/", DS, dirname($name)) . DS;
пишем

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

$res = str_replace("/", DS, substr(dirname($name),0,strripos(dirname($name),"_"))) . DS;
Не будут плодится папки с номером билда.
Дальше

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

$local_fs = file_exists($dir.$file[$key]) ? filesize($dir.$file[$key]) : -1;
меняем на

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

$local_fs = file_exists(substr(dirname($dir.$file[$key]),0,strripos(dirname($dir.$file[$key]),"_")).DS.basename($dir.$file[$key])) ? filesize(substr(dirname($dir.$file[$key]),0,strripos(dirname($dir.$file[$key]),"_")).DS.basename($dir.$file[$key])) : -1;
Чтобы находил файлы по изменённым путям

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

@unlink($dir.$file[$key]); 
заменяем на

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

@unlink(substr(dirname($dir.$file[$key]),0,strripos(dirname($dir.$file[$key]),"_")).DS.basename($dir.$file[$key]));

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

if(!file_exists($dir.$file[$key])) {
заменяется на

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

if(!file_exists(substr(dirname($dir.$file[$key]),0,strripos(dirname($dir.$file[$key]),"_")).DS.basename($dir.$file[$key]))) {
ну и последняя замена

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

Tools::download_file(sprintf("http://%s:%s@%s", $pair_key[0], $pair_key[1], $mirror . $name), $dir.$name);
меняем на

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

Tools::download_file(sprintf("http://%s:%s@%s", $pair_key[0], $pair_key[1], $mirror . $name), substr(dirname($dir.$file[$key]),0,strripos(dirname($dir.$file[$key]),"_")).DS.basename($name));
что бы правельно загруженные файлы сохранял

Что получилось на выходе: Старая архитектура хранения папок без всяких приписок номеров Билда к имени папки. Поправленный update.ver согласно новой (старой) архитектуре папок

Всё было протестировано на Centos 6.5 x86_64 и 30 рабочих станциях. Клиенты обновления получают.
P.S Хотелось бы увидеть ответ автора скрипта

ak42
рядовой
Сообщения: 38
Зарегистрирован: 2011-08-19 11:40:32

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение ak42 » 2014-08-06 10:12:37

Мог бы просто выложить свой mirror.class.php
в логе есть штук 20 строчек вида "Пропускаем em011_32_n6.nup [HTTP/1.1 404 Not Found]!"
это ошибка скрипта или просто нет таких файлов на сервере нода ?

unix3dgforce
проходил мимо
Сообщения: 8
Зарегистрирован: 2014-01-25 10:23:06

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение unix3dgforce » 2014-08-06 11:21:32

Мог бы просто выложить свой mirror.class.php
он у меня дописан под свои нужды из-за этого и не стал выкладывать а просто расписал то что менял!

evsey
рядовой
Сообщения: 31
Зарегистрирован: 2013-02-06 9:33:17

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение evsey » 2014-08-06 11:57:04

Ребята подскажите какая структура должна получиться в папке www?
Сейчас у меня вот такая схема и не хочет отдавать обновления пользователям.
Вложения
nod3.JPG
/var/www/eset_upd/v4
nod2.JPG
/var/www/eset_upd
nod1.JPG
/var/www

evsey
рядовой
Сообщения: 31
Зарегистрирован: 2013-02-06 9:33:17

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение evsey » 2014-08-06 12:45:52

И еще такой вопрос,если у меня Web сервер висит на порту 8888, нод сможет обновиться? Какие то трудности у меня с этим. Или через ftp реально сделать обновление?

hell.lamer
проходил мимо
Сообщения: 6
Зарегистрирован: 2014-08-01 22:36:13

Re: Очередной скрипт зеркала NOD32

Непрочитанное сообщение hell.lamer » 2014-08-06 13:37:27

evsey писал(а):И еще такой вопрос,если у меня Web сервер висит на порту 8888, нод сможет обновиться? Какие то трудности у меня с этим. Или через ftp реально сделать обновление?
В адресе сервера обновления нужно будет явно указать порт (http://<domain>:8888/eset_upd/), обновляться будет нормально.