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

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

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

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
OttoFix
рядовой
Сообщения: 31
Зарегистрирован: 2014-04-17 7:00:36

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

Непрочитанное сообщение OttoFix » 2014-08-08 10:24:38

kharkov_max писал(а):Спс получилось, нужно бы в исходники включить изменения ...
В исходниках нужно сделать, что бы эти строки скрипт брал из update.ver, а лучше сделать правильно и проверять ключи по дате действия.
Если будет время сделаю такой фикс.

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

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

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

Непрочитанное сообщение evsey » 2014-08-08 17:31:21

OttoFix писал(а):
OttoFix писал(а):
evsey писал(а): В ESS 5 прописал сервер http://lackystrike.no-ip.info:8888/
Нет работает.
Попробуй пробросить порт согласно этой инструкции
И в ноде прописать просто адрес без порта.
Локально тоже не работает http://172.16.30.100/ порт 80!

zvirus
рядовой
Сообщения: 18
Зарегистрирован: 2014-08-08 9:16:52

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

Непрочитанное сообщение zvirus » 2014-08-09 10:05:35

Народ, я тут случайно запостил в соседнюю ветку исправленную версию скрипта.
Напишу и здесь.

1) Автоматически ищется валидный путь для прверки ключиков из фала update.ver
2) В локальном хранилище все хранится по путям без цифрового индекса.
3) итоговые файлы update.ver преобразуются под локальное хранилище.

Архив папки inc прилагаю. Местами ставились костыли. :) Автор, при желании приведет все в норму.
https://yadi.sk/d/GxZ94-szZGvsN

Изменениям подверглись:
inc/init.php
inc/classes/Nod32ms.class.php
inc/classes/Mirror.class.php

Подробнее читайте тут.
http://forum.lissyara.su/viewtopic.php? ... 50#p363523

viktor6
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-12-16 22:49:28

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

Непрочитанное сообщение viktor6 » 2014-08-09 17:12:03

Ребята помогите нормально настроить генерацию странички index.html
Вот что у меня получилось но все както криво

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

	private function generate_index_html($key) {
		Log::write_log(Language::t("Generating index.html..."), 0);
		$html = '<html>
				<head>
				<meta http-equiv="Content-Type" content="text/html; charset=' . (Config::get('default_codepage') != "default" ? Config::get('default_codepage') : SCRIPT_CODEPAGE) . '" />
				<title>Зеркало обновления NOD32</title>				
				<style type="text/css">
				body {width:800px; 							
				background-image:url(nod32.jpg); 
				background-position: right center;
				background-repeat: no-repeat; 
				}
                div {
				width:600px; 
				margin: 200px ;
				}
				td {width:300px;}
				.left {
				color: #A90BF2;
				font-weight:bold;
				}
				.right {
				text-align:center;
				color: green;
				font-weight:bold;
				}
				.date {
				text-align:center;
				color: purple;
				font-weight:bold;
				}
				</style>
				</head>
				' . Language::t("content", $i) . '
				<body>
					<div>
						<table width="600" border="1">';
				
				$html .= '<? echo "<p>' . Language::t("update address") . ': <b>http://".$_SERVER["SERVER_NAME"]."/eset_upd/</b><br /><br />"; ?>';
		global $DIRECTORIES;
		foreach($DIRECTORIES as $i => $dir) {
			if(Config::upd_version_is_set($i) == '1') {
				$update_ver = sprintf("%s%s%s%supdate.ver", Config::get('web_dir'), DS, $dir, DS);
				$version = Mirror::get_DB_version($update_ver);
				$timestamp = $this->check_time_stamp($i, true);
				$html .= '<tr><td class="left">' . Language::t("Current database version [ver. %d]", $i) . '</td>';
				$html .= '<td class="right">' . $version . '</td></tr>';
				$html .= '<tr><td class="left">' . Language::t("Last successful update [ver. %d]", $i) . '</td>';
				$html .= '<td class="right">' . ($timestamp ? date("H:i:s",$timestamp) . ', ' . date("d-m-Y",$timestamp) : Language::t("n/a")) . '</td></tr>';
			}
		}
		$html .= '<tr><td class="left">' . Language::t("Last execution of the script") . '</td>';
		$html .= '<td class="date">' . date("H:i:s",Nod32ms::$start_time) . ', ' . date("d-m-Y",Nod32ms::$start_time) . '</td></tr>';
		$html .= '<tr><td class="left">' . Language::t("Used login") . '</td>';
		$html .= '<td class="right">' . $key[0] . '</td></tr>';
		$html .= '<tr><td class="left">' . Language::t("Used password") . '</td>';
		$html .= '<td class="right">' . $key[1] . '</td></tr>';
		$html .= '</table></div></body></html>';
		$index_file = Config::get('web_dir') . DS . "index.php";
		if(file_exists($index_file)) @unlink($index_file);
		Log::write_to_file($index_file, $html, true);
	}

SerzhAntz
рядовой
Сообщения: 13
Зарегистрирован: 2012-11-21 17:14:54

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

Непрочитанное сообщение SerzhAntz » 2014-08-11 10:51:48

zvirus писал(а):Народ, я тут случайно запостил в соседнюю ветку исправленную версию скрипта.
Спасибо, всё отлично работает.

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

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

Непрочитанное сообщение OttoF » 2014-08-11 12:54:14

evsey писал(а):Локально тоже не работает http://172.16.30.100/ порт 80!
Странно, а что в логах апача?

Mad Max
рядовой
Сообщения: 12
Зарегистрирован: 2014-08-13 13:12:17

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

Непрочитанное сообщение Mad Max » 2014-08-13 13:15:14

Чет в корень не ложит update.ver

Mad Max
рядовой
Сообщения: 12
Зарегистрирован: 2014-08-13 13:12:17

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

Непрочитанное сообщение Mad Max » 2014-08-13 15:56:42

и html не генериться

eset_upd
pcu
pcu-v5-sta
tmp
v3-rel-sta
v4-rel-sta
v5-rel-sta

от такая структура каталога получаеться....

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

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

Непрочитанное сообщение evsey » 2014-08-13 18:01:02

zvirus писал(а):Народ, я тут случайно запостил в соседнюю ветку исправленную версию скрипта.
Напишу и здесь.

1) Автоматически ищется валидный путь для прверки ключиков из фала update.ver
2) В локальном хранилище все хранится по путям без цифрового индекса.
3) итоговые файлы update.ver преобразуются под локальное хранилище.

Архив папки inc прилагаю. Местами ставились костыли. :) Автор, при желании приведет все в норму.
https://yadi.sk/d/GxZ94-szZGvsN

Изменениям подверглись:
inc/init.php
inc/classes/Nod32ms.class.php
inc/classes/Mirror.class.php

Подробнее читайте тут.
http://forum.lissyara.su/viewtopic.php? ... 50#p363523
Вот такая ошибка при обновлении.

PHP Fatal error: Out of memory (allocated 33292288) (tried to allocate 31209410 bytes) in /etc/nod32/inc/classes/Tools.class.php on line 43

zvirus
рядовой
Сообщения: 18
Зарегистрирован: 2014-08-08 9:16:52

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

Непрочитанное сообщение zvirus » 2014-08-13 22:35:24

просто скрипту маловато 32 метра памяти. Учитывая, что обновы он качает в память. Поставь боше мемори лимит.

SerzhAntz
рядовой
Сообщения: 13
Зарегистрирован: 2012-11-21 17:14:54

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

Непрочитанное сообщение SerzhAntz » 2014-08-13 23:24:09

Единственное что нужно - это удаление заархивированного update.ver из папки www. Иначе скрипт при каждом запуске перекачивает базы.

SerzhAntz
рядовой
Сообщения: 13
Зарегистрирован: 2012-11-21 17:14:54

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

Непрочитанное сообщение SerzhAntz » 2014-08-13 23:40:41

Пока решил это с помощью rm -R в скрипте запуска.

OttoFix
рядовой
Сообщения: 31
Зарегистрирован: 2014-04-17 7:00:36

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

Непрочитанное сообщение OttoFix » 2014-08-14 5:31:16

Mad Max писал(а):Чет в корень не ложит update.ver
В корень и не должен класть т.к. для каждой версии нода идет свой update.ver

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

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

Непрочитанное сообщение evsey » 2014-08-14 7:37:24

zvirus писал(а):просто скрипту маловато 32 метра памяти. Учитывая, что обновы он качает в память. Поставь боше мемори лимит.
128 стоит :(

OttoFix
рядовой
Сообщения: 31
Зарегистрирован: 2014-04-17 7:00:36

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

Непрочитанное сообщение OttoFix » 2014-08-14 8:13:27

evsey писал(а):
zvirus писал(а):просто скрипту маловато 32 метра памяти. Учитывая, что обновы он качает в память. Поставь боше мемори лимит.
128 стоит :(
Имелось в виду лимит выделяемой памяти процессу (скрипту).

в php.ini вот такие строчки

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

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 64M ; Maximum amount of memory a script may consume (8MB)
Но мне кажется, это поможет не надолго, скорее всего в скрипте не предусмотрели освобождение памяти.

Обновления заработали?

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

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

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

OttoFix писал(а):
evsey писал(а):
zvirus писал(а):просто скрипту маловато 32 метра памяти. Учитывая, что обновы он качает в память. Поставь боше мемори лимит.
128 стоит :(
Имелось в виду лимит выделяемой памяти процессу (скрипту).

в php.ini вот такие строчки

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

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 64M ; Maximum amount of memory a script may consume (8MB)
Но мне кажется, это поможет не надолго, скорее всего в скрипте не предусмотрели освобождение памяти.

Обновления заработали?

http://lackystrike.no-ip.info:8081/index.php limit = 128М

Переустановил все, пытаюсь настроить скрипт))

OttoFix
рядовой
Сообщения: 31
Зарегистрирован: 2014-04-17 7:00:36

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

Непрочитанное сообщение OttoFix » 2014-08-14 8:44:28

А как поведение с оригинальным скриптом?
Посмотри сколько памяти съедает скрипт при обновлении.

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

 post_max_size integer
    Устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize. Если дополнительно используется ограничение памяти, memory_limit также влияет на загрузку файлов. В сущности, memory_limit должна быть больше чем post_max_size. Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ. Если размер POST-данных больше чем post_max_size, суперглобальные переменные $_POST и $_FILES будут пустыми. Это можно отследить различными способами, например передав $_GET переменную в скрипт, обрабатывающий данные, т.е. <form action="edit.php?processed=1">, а затем проверить, установлена ли переменная $_GET['processed']. 

OttoFix
рядовой
Сообщения: 31
Зарегистрирован: 2014-04-17 7:00:36

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

Непрочитанное сообщение OttoFix » 2014-08-14 8:50:38

Это как вариант, хотя у меня все поумолчанию.

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

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

Непрочитанное сообщение evsey » 2014-08-14 10:16:34

OttoFix писал(а):Это как вариант, хотя у меня все поумолчанию.
Вроде решил, оказывается редактировал не тот php.ini?, почему то их 2 в системе. Пробую обновиться.

OttoFix
рядовой
Сообщения: 31
Зарегистрирован: 2014-04-17 7:00:36

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

Непрочитанное сообщение OttoFix » 2014-08-14 10:28:57

evsey писал(а):
OttoFix писал(а):Это как вариант, хотя у меня все поумолчанию.
Вроде решил, оказывается редактировал не тот php.ini?, почему то их 2 в системе. Пробую обновиться.
Какое расположение их в системе?
Возможно один включен в другой.

zvirus
рядовой
Сообщения: 18
Зарегистрирован: 2014-08-08 9:16:52

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

Непрочитанное сообщение zvirus » 2014-08-14 12:05:12

Дело даже не в освобождении памяти, а в принципе загрузки самого обновления. Используется $content = @file_get_contents($source); - т.е. загрузка идет в память. И если какой-то из файлов больше, чем выделяемая для скрипта память - то тут и наступает караул.
Попробуйте просто при инициализации скрипта, например в update.php прописать ini_set("memory_limit", "512M");
512 - это конечно дохрена, так что варьируйте по своему усмотрению. Например ini_set("memory_limit", "128M");
как-то так:

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

#!/usr/local/bin/php -q

<?php
ini_set("memory_limit", "128M"); 
require_once "inc/init.php";
...

OttoFix
рядовой
Сообщения: 31
Зарегистрирован: 2014-04-17 7:00:36

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

Непрочитанное сообщение OttoFix » 2014-08-14 13:25:27

zvirus писал(а):Дело даже не в освобождении памяти, а в принципе загрузки самого обновления. Используется $content = @file_get_contents($source); - т.е. загрузка идет в память. И если какой-то из файлов больше, чем выделяемая для скрипта память - то тут и наступает караул.
Вообще скрипт надо перекраивать и делать закачку с использованием curl (лучше с его якобы многопотоком) загружать все равно быстрее будет чем по одному файлику в один поток, я вот уже почти функцию определения срока действия ключа написал теперь можно будет узнать до какого числа действует ключ. Я сюда по возможности буду забрасывать всевозможные вкусности, надо только найти человека, который эти вкусности будет объединять со скриптом (мне лень в чужом коде копаться :crazy: )

SerzhAntz
рядовой
Сообщения: 13
Зарегистрирован: 2012-11-21 17:14:54

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

Непрочитанное сообщение SerzhAntz » 2014-08-14 23:27:10

OttoFix писал(а):
Mad Max писал(а):Чет в корень не ложит update.ver
В корень и не должен класть т.к. для каждой версии нода идет свой update.ver
Использую для веб-сайта nginx. Лёгкий, простой и легко настаиваемый HTTP-сервер. Обновления складываются в ../www/nginx-dist/сайт. В www создаётся папка nginx-distpcu и туда кладётся заархивированный update.ver (какой не знаю). Если его не удалить, то обновлений баз не происходит.

OttoFix
рядовой
Сообщения: 31
Зарегистрирован: 2014-04-17 7:00:36

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

Непрочитанное сообщение OttoFix » 2014-08-15 5:30:42

SerzhAntz писал(а): Обновления складываются в ../www/nginx-dist/сайт. В www создаётся папка nginx-distpcu и туда кладётся заархивированный update.ver (какой не знаю). Если его не удалить, то обновлений баз не происходит.
Какой скрипт используем? оригинальный или правленный zvirus
Проверь в папке www/tmp/pcu/ есть update.ver в распакованном виде?

Mad Max
рядовой
Сообщения: 12
Зарегистрирован: 2014-08-13 13:12:17

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

Непрочитанное сообщение Mad Max » 2014-08-15 8:00:13

SerzhAntz писал(а):
OttoFix писал(а):
Mad Max писал(а):Чет в корень не ложит update.ver
В корень и не должен класть т.к. для каждой версии нода идет свой update.ver
Использую для веб-сайта nginx. Лёгкий, простой и легко настаиваемый HTTP-сервер. Обновления складываются в ../www/nginx-dist/сайт. В www создаётся папка nginx-distpcu и туда кладётся заархивированный update.ver (какой не знаю). Если его не удалить, то обновлений баз не происходит.
в корне лежит файлик .htaccess

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

RewriteEngine on
    Options +FollowSymlinks
    RewriteCond %{HTTP_USER_AGENT} ^NOD32.*BPC.2
    RewriteRule ^update.ver$ /nod_upd/update.ver
    RewriteCond %{HTTP_USER_AGENT} ^ESS.*BPC.3
    RewriteRule ^update.ver$ /eset_upd/update.ver
    RewriteCond %{HTTP_USER_AGENT} ^ESS.*BPC.4
    RewriteRule ^update.ver$ /eset_upd/v4/update.ver
    RewriteCond %{HTTP_USER_AGENT} ^ESS.*BPC.5
    RewriteRule ^update.ver$ /eset_upd/v5/update.ver
    RewriteCond %{HTTP_USER_AGENT} ^ESS.*BPC.6
    RewriteRule ^update.ver$ /eset_upd/v6/update.ver
    RewriteCond %{HTTP_USER_AGENT} ^ESS.*BPC.7
    RewriteRule ^update.ver$ /eset_upd/v7/update.ver
    <files .htaccess="">
    order allow,deny
 deny from all
    </files>
wget -U "ESS BPC 5" http://127.0.0.1/update.ver
--2014-08-15 08:02:11-- http://127.0.0.1/update.ver
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2014-08-15 08:02:11 ERROR 404: Not Found.

собственно обновы не проходят