Страница 4 из 27

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-08-18 15:44:33
Le Travailleur
Подтверждаю, новый скрипт Гостя работает хорошо, проблем пока не выявлено. Забит в ежечасный crond, обновления скачиваются оперативно, два-три раза за сутки.
Вопрос теперь только в том, что быдет, когда ключик, указанный в скрипте, кончится... :shock: Нельзя ли как-нибудь скрестить поиск ключей в гугле из самого первого скрипта и возможности по закачке из второго? :) Было бы прост чудесно! :"":

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-08-27 10:49:41
kryos
Здравствуйте люди, может кто поможет скрипт который с автопоиском ключей почемуто уже не работает.. Пытался переделать другой скрипт для скачки с халявного зеркала не хочет никак . Ругается на отсуцтвие файла на сервере update.ver но если пройти по ссылке то он там есть... Что не так я делал ?

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

#!/usr/bin/perl

use LWP;

# path to store updates
$PATH="/usr/local/www/data";
# way to wget
$WGET="/usr/local/bin/wget";
# username/password for updates registered users
#$LOGIN="EAV-04170633";
#$PASS="a4ju642rvv";

# URL for updates
$URL_UPD="http://nod3.petabyte.ru/";

$URL_UPD =~ s/\/$//;
$URL_UPD =~ m/(.*:\/\/)(.*?)(\/.*)/;
$site = "$1$2";
if ($site =~ m//) {
  print "Enter correct URL\n";
  return;
}

unlink("$PATH/update.ver","$PATH/update.tmp");
download($PATH,"$URL_UPD/update.ver",$LOGIN,$PASS);
`/usr/local/bin/unrar e -y $PATH/update.ver $PATH 2> /dev/null`;
rename("$PATH/update.ver","$PATH/update.tmp");

$ver = "$PATH/update.tmp";
$vers = "$PATH/update.ver";

open(VER, "< $ver") or die "Couldn't open $ver for reading: $!\n";
open(VERS, "> $vers") or die "Couldn't open $vers for writing: $!\n";

%files = ();
%urls = ();

while (defined($line = <VER>) )
{
chomp $line;
($par,$val)=split /=/, $line;

$val = substr($val, 0, -1);

if ($par =~ /file/ )
{
  $name = '/'.$val;
  $name =~s/\/.*\///;
  $furl="$URL_UPD/$val";
  $line="file=$name";
}

if ($par =~/size/ )
{
  $size = $val;

 $files{$name} = $size;
  $urls{$name} = "$furl";
}

print VERS "$line\r\n";
}
print "\n";

close(VER);
close(VERS);

foreach $f (keys %files) {
  if ((-s "$PATH/$f") != $files{$f}){
#  $size = (-s "$PATH/$f");
#  print "Not present --> $PATH/$f\t$f\t$files{$f} ---> $size\n";
    unlink("$PATH/$f");
    download($PATH,$urls{$f},$LOGIN,$PASS);
  } else { #print "    Present --> $PATH/$f\t$f\t$files{$f}\n";

  }
}

chmod(0644,"$PATH/*");

sub download()
{
  my ($path, $url, $login, $pass) = @_;
  system("$WGET -P $path --http-user=$login --http-password=$pass
$url");
}

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-08-27 15:55:48
hizel
если вы закомментировали login и pass то
уберите их везде, включая

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

system("$WGET -P $path --http-user=$login --http-password=$pass $url");
хотя-бы приведите к виду

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

system("$WGET -P $path $url"); 

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-08-29 12:09:46
kryos
Большое спасибо. Помогло

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-08-30 5:28:08
FenX
Если кому интересно:
скрипт из первого поста данной темы,
но качает wget`ом, плюс тянет обновки только с заданного сервера :)

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-01 16:11:30
leo_boy
binmode() on closed filehandle F at /usr/local/nod32/upd.pl line 116, <AUTHFILE> line 10.
print() on closed filehandle F at /usr/local/nod32/upd.pl line 117, <AUTHFILE> line 10.
binmode() on closed filehandle F at /usr/local/nod32/upd.pl line 116, <AUTHFILE> line 10.
print() on closed filehandle F at /usr/local/nod32/upd.pl line 117, <AUTHFILE> line 10.
binmode() on closed filehandle F at /usr/local/nod32/upd.pl line 116, <AUTHFILE> line 10.
print
У меня также ругалось после того как я удалил все папки которые сам создал скрипт. Вторично почему-то он их создать не смог. Сам добавил руками с все заработало.. попробуй создать eset_upd и download ( в папке довнлоад нужно еще создать engine3 & engine3ess) (в скрипте можно посмотреть)

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-01 20:56:33
FenX
Не смог создать папки - из-за нехватки прав.
смотри под каким юзером запускаешь и смотри,
есть ли у него права на запись в корневую диру.

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-01 23:24:18
jesprit

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

Use of uninitialized value in split at ./upd.pl line 116.
--2008-09-02 03:22:48--  http://update.eset.com//eset_updupdate.ver
Resolving update.eset.com... 90.183.101.14, 90.183.101.16, 90.183.101.10, ...
Connecting to update.eset.com|90.183.101.14|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2008-09-02 03:22:48 ERROR 404: Not Found.

Use of uninitialized value in split at ./upd.pl line 116.
Вот что у меня. Но я так понимаю все ж таки адрес официальных обновлений, там явно все есть...и как то у меня 404 Not Found не вяжется со всем.

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-02 15:12:10
FenX
вот за лог спасибо :)
ща поправлю :)

Залил архив с поправленным скриптом.

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-03 13:32:20
foks
1 Файлы и папки несоздаются под любым юзером при полных правах
2 создаёшь всё вручную, начинает фурычить, но не доконца
3 у wget на разных системах видимо по разному принемаетяс параметр password, в данном скрипте, в моём случае --http-password, нужно заменить на --httpd-passwd
4 скачка баз прошла, только почему то объём у папок engine3 скачаных скриптом из первого поста и последним разный.
5

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

-16:40:40--  http://update.eset.com/eset_updupdate.ver
           => `/var/db/eset_mirror/eset_updupdate.ver'
Resolving update.eset.com... 90.183.101.15, 90.183.101.16, 90.183.101.17, ...
Connecting to update.eset.com[90.183.101.15]:80... connected.
HTTP request sent, awaiting response... 404 Not Found
16:40:40 ERROR 404: Not Found.

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-03 13:37:02
foks
Сорь, файлы создаются, пути заметил потом. Но без файла nod32.auth ---

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

Can't locate object method "decoded_content" via package "HTTP::Headers" at (eval 20) line 1.
его закидываешь с первого скрипта и начинается даунлоад update.ver, а если в корне со криптом не будет папок eset_upd и download c соответствующими подпапками, то дальше скачка не идёт.

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-03 14:11:07
FenX
странно Оо
у меня пашет без вопросов.
отличается от своего родителя только тем,
что убрано излишнее чтение файла на предмет адресов обновлений
и качает всё только с того сервера, который указан в начале в настройках...

Проверь наличие модулей perl (LWP и URI) в системе.
Если нет, то попробуй поставить их (cpan -i LWP; cpan -i URI)

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-03 16:46:59
Le Travailleur
FenX, потверждаю: со скриптом что-то "не айс". По логам ошибок, вроде, не светит, но тем не менне, НОД с ним не обновляется: вероятно, что-то не так с update.ver. До сих пор пользуюсь последним скриптом Гостя плюс последующая сортировка своим скриптом. Есть одно "маленькое но": в скрипте Гостя в результате создаются два файла: update.tmp и update.ver. Так вот, что бы все работало, как надо, приходится игнорировать update.ver и переименовывать update.tmp в update.ver с последующим переносом в нужную папку.
Может, конечно, и у меня что-то не так, но вот только таким образом все работает. Правда, скрипт Гостя не ищет пароли... :cry:

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

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-03 21:49:14
FenX
так.
с файлом update.ver проблем быть не должно =\
проверь - создаются ли все папки. проверь, складываются ли файлы в нужные дериктории.
Так же проверь наличае родного файла update.ver в base_dir/eset_upd/

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-05 18:44:23
foks
Естественно эти модули установлены и функционируют, начальный скрипт то от них и зависит. Впринципе то, если голова варит, заставить его работать можно, но меня смутило то, что размер баз начального скрипта и переделанного различный, хоть и незначительно(не более 1мб).

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-06 2:25:20
FenX
Вопрос в какую сторону :)
возможно это из-за того, что начальный скрипт тянул ещё и с других зеркал что-то...
там просто возможны какие-то дообновления...

хотя у меня лично. в последнее время многие сервера обновления почему-то не доступны =(

Что касается самого скрипта:
по каким причинам именно не ф-ционирует?
где косяк?))
я просто поправлю и перезалью :)

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-06 9:16:34
foks
Щяс ещё раз всё проверил, папки создаются, с update.ver тоже всё в поряде, никаких tmp, размер у баз тоже одинаковый, скорей всего раньше нестыковка по времени была, из за этого и размер отличался.

Но и есть пара моментов:
1 в архиве который ты залил, в директории lib отсутствует файл nod32.auth, содержаший ключ без которого скрипт работать не будет.
2 Пути в скрипте: не у всех wget лежит в usr/local/bin + unrar не всем подходит, но это уже "дело рук самих утопающих"

А зачем собственно убран блок поиска ключей и серверов. Может их лучше оставить + закачка wget'ом при которой недолжны "биться" файлы базы, как в начальном скрипте и не нужно было бы их чистить раз в сутки.

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-17 22:27:02
Pez!

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

games1# /usr/local/www/eset_www/update_eset.sh
Use of uninitialized value in concatenation (.) or string at /usr/local/eset/lib/keys.pm line 146.
Use of uninitialized value in concatenation (.) or string at /usr/local/eset/lib/keys.pm line 146.
Use of uninitialized value in concatenation (.) or string at /usr/local/eset/lib/keys.pm line 146.
Use of uninitialized value in concatenation (.) or string at /usr/local/eset/lib/keys.pm line 146.
Use of uninitialized value in concatenation (.) or string at /usr/local/eset/lib/keys.pm line 146.
Use of uninitialized value in concatenation (.) or string at /usr/local/eset/lib/keys.pm line 146.
вот такое стало выскакивать при обновлениях, в логе обновы пишет, что гугл просит ввести картинку с капчи.

Ни кто не в курсе как побороть ? до этого месяц работало стабильно :-o

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-17 22:38:41
Pez!
прописал ключики вручную в файл nod32.auth и вроде обновилось, странно что только сейчас трабл появился

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-21 0:42:54
NiTr0
Подпилил скрипт отсюда. Основные изменения:
  1. Апдейтит как 2, так и 3 версию; для v2 - можно указать языки программных модулей, которые будут копироваться (думаю, мало кому нужен апдейт для китайской версии ;) ), и ессно можно отключить апдейт для 2 или 3 версии "галочкой"
  2. При ошибке получения файла - не сохраняет битое нечто как файло апдейта, а просто игнорит
  3. Проверка не версий, а билдов (т.к. может быть теоретически свежее билд той же версии - во всяком случае, номер билда всегда больше номера версии, когда - на пару единиц, когда - на сотни, в зависимости от пакета)
  4. Теперь проверяется размер файлов не только для старых файлов, но и для файлов текущей версии (на случай кривого файла на исходном зеркале, недокачанного файла и т.д.)
  5. Сделано "умное" создание директорий (т.е. - директория создается тогда и только тогда, когда в нее требуется поместить файло - раньше было создание набора директорий при первом запуске по глупому условию)
  6. Выбор детализации логов (если откл детализацию - убираются сообщения о проверке сервера и о том, что на у нас база не старее чем на сервере)
  7. Прочие мелкие фиксы (касательно апдейтера, в "кейген" не лез ибо пока не глючил :) )
P.S. выявил и поправил кое-какие мелкие баги

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-23 17:59:01
cac2s
NiTr0 писал(а):Подпилил скрипт отсюда. Основные изменения:
  1. Апдейтит как 2, так и 3 версию; для v2 - можно указать языки программных модулей, которые будут копироваться (думаю, мало кому нужен апдейт для китайской версии ;) ), и ессно можно отключить апдейт для 2 или 3 версии "галочкой"
  2. При ошибке получения файла - не сохраняет битое нечто как файло апдейта, а просто игнорит
  3. Проверка не версий, а билдов (т.к. может быть теоретически свежее билд той же версии - во всяком случае, номер билда всегда больше номера версии, когда - на пару единиц, когда - на сотни, в зависимости от пакета)
  4. Теперь проверяется размер файлов не только для старых файлов, но и для файлов текущей версии (на случай кривого файла на исходном зеркале, недокачанного файла и т.д.)
  5. Сделано "умное" создание директорий (т.е. - директория создается тогда и только тогда, когда в нее требуется поместить файло - раньше было создание набора директорий при первом запуске по глупому условию)
  6. Выбор детализации логов (если откл детализацию - убираются сообщения о проверке сервера и о том, что на у нас база не старее чем на сервере)
  7. Прочие мелкие фиксы (касательно апдейтера, в "кейген" не лез ибо пока не глючил :) )
P.S. выявил и поправил кое-какие мелкие баги
Работает отменно, НО заметил два НО:

1. при первом запуске не хочет обновляться, т.к. не имеет фалов "update.ver". приходится качать руками и подсовывать в папки v2 и v3
2. если нет связи с внешним миром - пропадают те самые "подсунутые" или закаченные скриптом "update.ver", приходится опять подсовывать

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-23 18:03:48
FenX
1. Проверил у себя - всё замечательно качается и создаётся.
2. Эта проблема была со всеми предложенными скриптами :)

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-23 20:09:13
cac2s
FenX писал(а):1. Проверил у себя - всё замечательно качается и создаётся.
только что переименовал update.ver - получил: couldn't open the v2/update.ver!
FenX писал(а):2. Эта проблема была со всеми предложенными скриптами :)
какая "эта"? подозреваю, что Вы меня не до конца поняли...
я имел ввиду, что, если запустить скрипт, когда у контупера нет доступа к миру, то пропадают файлы update.ver в папках v2 и v3.
после того, как связь появляется - наступает очередь первой (не закачиваются файлы update.ver)
результат - автоматические обновления становятся неавтоматичскими

З.Ы.: прошу прощения за, может быть, излишнее "разжОвывание", просто хочу быть уверен, что мы говорим об одном и том же ))

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-23 21:04:43
FenX
Да, мы говорим об одном и том же :)
Первая проблема, возможно связанна с нехваткой прав на директорию.
Проверь, есть ли права на запись.

А вот как побороть 2ю проблему (удаление файла) я хз.
Она идёт из-за того, что перед тем, как скачать новый update.ver,
скрипт переименовывает старый в update.ver.old

Re: Проба пера: статья о создании зеркала для NOD32

Добавлено: 2008-09-24 5:56:48
mymy
Кто-нибудь может объяснить толково,почему стало такое происходить и как побороть это?

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

Use of uninitialized value in concatenation (.) or string at /usr/local/etc/nod-upd/lib/keys.pm line 146.
Use of uninitialized value in concatenation (.) or string at /usr/local/etc/nod-upd/lib/keys.pm line 146.
Use of uninitialized value in concatenation (.) or string at /usr/local/etc/nod-upd/lib/keys.pm line 146.