Перейти к содержимому
Калькуляторы

создание зеркала обновлений nod32

скрипт для обновления нод32. собственно я нашел такой скрипт, ну что то он не пашет.

с оф сайта качает файло и на файле запариваеться em010-32-10.nub причем какой бы я не выбрал сервер.

 

может у кого есть свой скрипт

сам скрипт взял вот от сюдаurl=http://www.volmed.org.ru/wiki/index.php/%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82_%D0%BF%D0%BE_%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8E_%D0%B0%D0%BD%D1%82%D0%B8%D0%B2%D0%B8%D1%80%D1%83%D1%81%D0%BD%D1%8B%D1%85_%D0%B1%D0%B0%D0%B7_NOD32_%D0%BF%D0%BE%D0%B4_Linux#NOD32_V3.2A]

Click here!

[/url]

 

 

 

 

файла em010_32_l0.nup нет - выкачать

--14:32:20-- http://update.eset.com//download/engine3ess/em010_32_l0.nup

=> `em010_32_l0.nup'

Распознаётся update.eset.com... 90.183.101.15, 90.183.101.17, 90.183.101.12, ...

Устанавливается соединение с update.eset.com|90.183.101.15|:80... соединение установлено.

Запрос HTTP послан, ожидается ответ... 401 Authorization Required

Сбой авторизации.

Ошибка выкачивания файла em010_32_l0.nup

Обновление антивирусных баз ERROR

Восстанавливаем базу

cp: пропуск каталога `/var/www/apache2/html/nod32/eset_upd'

Время работы сценария 26 с

 

 

такую вот ошибку выдает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Запрос HTTP послан, ожидается ответ... 401 Authorization Required

Сбой авторизации.

Ошибка выкачивания файла em010_32_l0.nup

Обновление антивирусных баз ERROR

Восстанавливаем базу

cp: пропуск каталога `/var/www/apache2/html/nod32/eset_upd'

Время работы сценария 26 с

 

 

такую вот ошибку выдает

Если вы качаете с офф.сайтов - то введите правельные логин/пасс на них, если нет - тогда логин/пасс коментируем и выбираем халявные источник.

Читайте инстал.тхт и коменты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у меня есть офиц логин и пароль, который еще действителен, я его 100 раз уже проверил, и 100 раз перепрописал.

Может этот скрип нужно запускать от определенного пользователя ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А еще в скрипте этом, там логин и пароль ставить в кавычках или нет ? просто в скрипте был уже забит какой то пароль и логин но без кавычек, я его заменил на свой, а снизу есть строчка закоментированная и в ней написанно пароль и стоят ""

 

Причем какието файлы скачиваются. мне пишет

файла em008_32_l0.nup нет - выкачать

--17:30:43-- http://update.eset.com//download/engine3/em008_32_l0.nup

=> `em008_32_l0.nup'

Распознаётся update.eset.com... 90.183.101.11, 90.183.101.13, 90.183.101.14, ...

Устанавливается соединение с update.eset.com|90.183.101.11|:80... соединение установлено.

Запрос HTTP послан, ожидается ответ... 200 OK

Длина: 158 420 (155K) [application/octet-stream]

 

100%[===============================================================================

=================================>] 158 420 77.21K/s

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробывал вручную скачать этот файл, тоже не катит авторизация, может это из-за того что пароль у меня для стандартной версии, а качает он файло может для бизнес или еще чего то.

 

Через виндовую вивер прогу то все нормально работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

недавно та же фигня началась, с виндового пароль канает, а из скрипта самописного нет, такое чувство что мой сервак по ипу забанили, или проверку ввели на агента

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

и че делать теперь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Долго долбался с разными скриптами, всё время где-то подвох. Оказалось что всё проще, установил версию нода для файл-сервера linux, воткнул лицензионный файл, раскомментил минимально пути в esets.cfg, чтобы сделалось зеркало в /var/www/ Обновляется модулем esets_update Отдаю lighthttpd Вот и вся любовь, правда конечно нод и вся остальная требуха лицензионная

 

Кажется мне что при скачивании там ещё происходит какая-то обработка/перепаковка, правда не разбирался, может только кажется

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Долго долбался с разными скриптами, всё время где-то подвох. Оказалось что всё проще, установил версию нода для файл-сервера linux, воткнул лицензионный файл, раскомментил минимально пути в esets.cfg, чтобы сделалось зеркало в /var/www/ Обновляется модулем esets_update Отдаю lighthttpd Вот и вся любовь, правда конечно нод и вся остальная требуха лицензионная

 

Кажется мне что при скачивании там ещё происходит какая-то обработка/перепаковка, правда не разбирался, может только кажется

А можешь скинуть на мыло файл сервер нодовский ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Бери, http://slil.ru/26290007

 

Юзаю дебиан/убунту так что скачал только под него дистр

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

спасибо но дебиановский не кактит для меня

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

дык скажи какой надо, помогу, чегож не помочь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

и че делать теперь

Я типа разобрался :) У меня лицензия кончилась... Быстро однако год пролетел :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А ты можешь дать свой скрипт для обновления ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот точно рабочий скрипт. Который работает у меня уже три месяца. Для третьего нода

 

#!/usr/bin/perl

# path to store updates
$PATH="/usr/local/www/nod3";
# wget
$WGET="/usr/local/bin/wget";
# username/password for updates registered users
$LOGIN='';
$PASS='';
# URL for updates
$URL_UPD='http://u37.eset.com/';

$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/eset_upd/update.ver",$LOGIN,$PASS);
system("/usr/local/bin/unrar e -y $PATH/update.ver $PATH");
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 = ();

$end = 0;

while (defined($line = <VER>) )
    {
      chomp $line;

        if ($line =~ /COMPATLIST/) {
            $end = 1;
        }

        if ($end == 0) {
          ($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");
}

 

Понятно, что логин пароль нужно указать свои

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как его можно заузать.

мини инструкци можешь написать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как его можно заузать.

мини инструкци можешь написать ?

А че тут писать то? Засовываешь его в крон на выполнение. Допустим пару-тройку раз в сутки. Прописываешь папку где складываются обновления в конфиге апача. И натравливаешь на этот адрес локальный нод. Можно даже пароли замутить и пользователям в сетке продавать доступ :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

# wget

$WGET="/usr/local/bin/wget";

 

А что это за строчка, такой папки у меня нет ?

 

[root@intel_serv upd_prog]# ./nod32.cfg

 

UNRAR 3.80 freeware Copyright © 1993-2008 Alexander Roshal

 

Cannot open /var/www/apache2/html/nod32/update.ver

No such file or directory

No files to extract

Couldn't open /var/www/apache2/html/nod32/update.tmp for reading: No such file or directory

 

Вот этот путь верен /var/www/apache2/html/nod32/ а вот файла там нету этого. чтоб он появился, надо же скачать сначала базу.

 

update.tmp этого файла у меня тоже нет.

Изменено пользователем diesels

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

# wget

$WGET="/usr/local/bin/wget";

 

установил эту штуку, исправил строчку, на нужну. и вроде пашет. сейчас забью логин и пароль и попробую

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

спасибо. работает вроде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поставил. Работает.

Запустил скрипт, он отработал. Потом обновил нод с того что накачал скрипт.

Подождал 12 часов, ещё раз запустил скрипт, он скачал 3,2 мб.

Обновил нод с офф сайта, нод скачал от туда всего 20 кб.

 

Скрипт тянет лишнего много :(

Экономии не ощущается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для второго нода рабочих скриптов ни у кого случаем нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#!/usr/bin/perl

use LWP;

# path to store updates
$PATH="/var/www/nod";
# username/password for updates registered users
$LOGIN="";
$PASS="";
# URL for updates
$URL_UPD="http://u2.eset.com/nod_eval";

$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";
}
print "\n";

close(VER);
close(VERS);
foreach $f (keys %files) {
if ( (-s ("$PATH/$f")) != $files{$f}){
download($PATH,$urls{$f},$LOGIN,$PASS);
}
}
chmod(0644,"$PATH/*");

sub download()
{
my ($path, $url, $login, $pass) = @_;

# use external downloader
system("/usr/bin/lftp -c \"get -cO $path $url\"");
return;
# PERL downloader
$url =~ m/(.*:\/\/)(.*)\/(.*)/;
my $filename = $3;

my $ua=LWP::UserAgent->new();
$ua->agent("PerlUA/0.1");
my $ua=LWP::UserAgent->new();
$ua->agent("PerlUA/0.1");
my $req = HTTP::Request->new(HEAD => "$url");
$req->authorization_basic($login, $pass);
my $document=$ua->request($req);
if($document->is_success) {
if (!($document->content_length== -s("$path/$filename"))) {

my $req = HTTP::Request->new(GET => "$url");
$req->authorization_basic('login', 'password');
my $document=$ua->request($req);
if($document->is_success) {
open(OUT, "> $path/$filename");
print OUT $document->content;
close(OUT);
print "Downloading $url ";
print "- ok\n";
}
else {
print "$url ",$document->status_line,"\n";
}
}
else { #
print "$filename - exist\n";
}
}
else {
print "$url ",$document->status_line,"\n";
}
}


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;
$line =~ s/^\s+//;
$line =~ s/\s+$//;
($par,$val)=split /=/, $line;

if ($par =~ /file/ )
{
$name = $val;
$name =~ s/\/.*\///;

if ($name=~m/$val/) {$furl="$URL_UPD/$val";}
else {$furl="$site$val";}
$line="file=$name";
}
if ($par =~ /size/ )
{
$size = $val;
$files{$name} = $size;
$urls{$name} = "$furl";
}
print VERS "$line\r\n";

 

Для 2-го нода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Can't locate LWP.pm in @INC (@INC contains: /etc/perl /usr/lib/perl5/vendor_perl/5.8.8/i686-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.8.8/i686-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/5.8.8/i686-linux /usr/lib/perl5/5.8.8 /usr/local/lib/site_perl .) at ./nod32_upd line 3.
BEGIN failed--compilation aborted at ./nod32_upd line 3.

 

С перлом не дружу, может есть у кого на баше или пхп? )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Can't locate LWP.pm in @INC (@INC contains: /etc/perl /usr/lib/perl5/vendor_perl/5.8.8/i686-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.8.8/i686-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/5.8.8/i686-linux /usr/lib/perl5/5.8.8 /usr/local/lib/site_perl .) at ./nod32_upd line 3.
BEGIN failed--compilation aborted at ./nod32_upd line 3.

 

С перлом не дружу, может есть у кого на баше или пхп? )

нехватает модуля для Perl так и называется LWP подробнее

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.