Страница 1 из 2

Зеркало Nod32

Добавлено: 20 сен 2011, 17:52
Raven
Итак, для сего действа нам понадобятся:
Пакет unrar (поищите в репозиториях своего дистрибутива, для RHEL|CentOS он имеется в репозитории ATrpms).
Фреймворк simplehtmldom
Руки (2 пары пропатченые до нужной прямоты)

Создаем папку куда будем складывать все наше добро. У меня это /srv/backup/eset.
В корне ее создаем скрипт getpass.php с таким содержанием:

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

 #!/usr/bin/php
 <?php
 require('simple_html_dom.php'); 
 $html = file_get_html('http://www.nnvv.org/');
 $a=$html->getElementById("#nod32ids")->children(0)->children(0)->plaintext;
 $a = str_replace("Username:", 'USERNAME=', $a);
 $a = str_replace("Password:", 'PASSWORD=', $a);
 echo $a."\n";
 ?>
Фреймворк распакуем туда же.
Далее создадим структуру каталогов:

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

mkdir -p ./download/engine3
 mkdir -p ./download/engine3ess
 mkdir -p ./eset_upd
 mkdir -p ./download/win/emsx
 mkdir -p ./download/win/v3eav
 mkdir -p ./download/win/v3ess
 mkdir -p ./download/win/v3eav/pre
 mkdir -p ./download/win/v3ess/pre
 mkdir -p ./download/win/v3
 mkdir -p ./lists


Ну и собственно пишем скрипт который положим в /srv/backup/eset и будем запускать по крону:

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

#!/bin/bash
CURDIR=/srv/backup/eset
LIST_DIR=$CURDIR/lists
WGET=/usr/bin/wget
MV=/bin/mv
UNRAR=/usr/bin/unrar
GREP=/bin/grep
SED=/bin/sed
GETPASS=$CURDIR/getpass.php


cd $CURDIR
$WGET -q --timestamping http://update.eset.com/eset_upd/update.ver

cp $CURDIR/update.ver $CURDIR/eset_upd/update.rar
cd $CURDIR/eset_upd
$UNRAR e -y update.rar 2>&1 >/dev/null
cd $CURDIR

#$MV -f $CURDIR/eset_upd/update.rar $CURDIR/update.ver
$GREP file= $CURDIR/eset_upd/update.ver |$GREP "engine3/"| $SED -e 's/file\=/http\:\/\/um10.eset.com/' |$GREP -v data > $LIST_DIR/downlist1.txt
$GREP file= $CURDIR/eset_upd/update.ver |$GREP engine3ess| $SED -e 's/file\=/http\:\/\/um10.eset.com/' |$GREP -v data > $LIST_DIR/downlist2.txt
$GREP file= $CURDIR/eset_upd/update.ver |$GREP emsx| $SED -e 's/file\=/http\:\/\/um10.eset.com/' |$GREP -v data > $LIST_DIR/downlist5.txt
$GREP file= $CURDIR/eset_upd/update.ver |$GREP v3 | $SED -e 's/file\=/http\:\/\/um10.eset.com/' |$GREP -v data > $LIST_DIR/downlist3.txt
$GREP file= $CURDIR/eset_upd/update.ver |$GREP v3ess|$GREP -v pre| $SED -e 's/file\=/http\:\/\/um10.eset.com/' |$GREP -v data > $LIST_DIR/downlist4.txt
$GREP file= $CURDIR/eset_upd/update.ver |$GREP v3eav|$GREP pre| $SED -e 's/file\=/http\:\/\/um10.eset.com/' |$GREP -v data > $LIST_DIR/downlist6.txt
$GREP file= $CURDIR/eset_upd/update.ver |$GREP v3ess|$GREP pre| $SED -e 's/file\=/http\:\/\/um10.eset.com/' |$GREP -v data > $LIST_DIR/downlist7.txt

$GETPASS > $CURDIR/pass.sh
$SED -i 's/\r//' $CURDIR/pass.sh
source $CURDIR/pass.sh

cd $CURDIR/download/engine3/
$WGET --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=$LIST_DIR/downlist1.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd $CURDIR/download/engine3ess/
$WGET --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=$LIST_DIR/downlist2.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd $CURDIR/download/win/v3eav/
$WGET --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=$LIST_DIR/downlist3.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd $CURDIR/download/win/v3ess/
$WGET --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=$LIST_DIR/downlist4.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd $CURDIR/download/win/emsx/
$WGET --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=$LIST_DIR/downlist5.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd $CURDIR/download/win/v3eav/pre/
$WGET --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=$LIST_DIR/downlist6.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"

cd $CURDIR/download/win/v3ess/pre/
$WGET --timestamping --http-user=$USERNAME --http-password=$PASSWORD --input-file=$LIST_DIR/downlist7.txt --user-agent="ESS Update (Windows; U; 32bit; VDB 7001; BPC 4.0.474.0; OS: 5.1.2600 SP 3.0 NT; CH 0.0; LNG 1049; x32c; UPD http://um10.eset.com; APP ess; BEO 1; CPU 5964; ASP 0.0)"
Вот собственно и все - осталось только дать доступ в эту папку посредством web или ftp-сервера и спрятать в его настройках от посторонних глаз все файлы в корне /srv/backup/eset.

За светлую идею спасибо xandr0s

Re: Зеркало Nod32

Добавлено: 20 сен 2011, 17:58
zaka
*COOL*
Завтра попробую на CentOS а как насчет BSD прокатит?

Re: Зеркало Nod32

Добавлено: 21 сен 2011, 09:09
Raven
Ну так от платформы оно все как бы не зависит. Просто на FreeBSD придется либо собирать wget либо искать аналогичные параметры для fetch.

Re: Зеркало Nod32

Добавлено: 23 сен 2011, 15:40
zaka
таак установил unrar, скачал simplehtmldom распаковал в /srv/eset тама же создал пхп файл с кодам, создал каталоги и сам скрипт запускаю не хр....н не идет может я что то пропустил?

Re: Зеркало Nod32

Добавлено: 26 сен 2011, 09:34
Raven
А пути переписал?

Re: Зеркало Nod32

Добавлено: 26 сен 2011, 10:03
zaka
Raven писал(а):А пути переписал?
пробовал и так:

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

pwd 
/srv/backup/eset

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

ls
 app             eset_upd    getpass.php  pass.sh                testcase
change_log.txt  example     listsls      simplehtmldom_1_5.zip  update.ver
download        geteset.sh  manual       simple_html_dom.php
[spoilerошибки]E-mail bug reports to: bonzini@gnu.org .
Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.
geteset.sh: line 34: s/file\=/http\:\/\/um10.eset.com/: No such file or directory
geteset.sh: line 34: /srv/backup/eset/lists/downlist7.txt: No such file or directory
/srv/backup/eset/getpass.php: line 1: ?php: No such file or directory
/srv/backup/eset/getpass.php: line 2: syntax error near unexpected token `'simple_html_dom.php''
/srv/backup/eset/getpass.php: line 2: ` require('simple_html_dom.php'); '
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
geteset.sh: line 44: --input-file=/srv/backup/eset/lists/downlist1.txt: No such file or directory
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
geteset.sh: line 50: --input-file=/srv/backup/eset/lists/downlist2.txt: No such file or directory
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
geteset.sh: line 56: --input-file=/srv/backup/eset/lists/downlist3.txt: No such file or directory
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
geteset.sh: line 62: --input-file=/srv/backup/eset/lists/downlist4.txt: No such file or directory
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
geteset.sh: line 68: --input-file=/srv/backup/eset/lists/downlist5.txt: No such file or directory
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
geteset.sh: line 74: --input-file=/srv/backup/eset/lists/downlist6.txt: No such file or directory
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
geteset.sh: line 80: --input-file=/srv/backup/eset/lists/downlist7.txt: No such file or directory
[root@centos eset]#[/spoiler]

Re: Зеркало Nod32

Добавлено: 26 сен 2011, 10:07
zaka
это только малая часть ошибок

Re: Зеркало Nod32

Добавлено: 26 окт 2011, 10:17
Raven
В общем, победил я вражину, правда несколько иным способом - скачал скрипт обновления отсюда, настроил под особенности своего сервера, запустил - все отлично. Но вот только на втором запуске эта вражина отказалась гуглить новые ключи и соответственно качать обновы. пришлось немного поплясать с бубном и доработать этот скрипт скриптом из предыдущего неудавшегося эксперимента. 4 дня - полет нормальный))) Ниже выкладываю архив с видоизмененным скриптом - авось кому понадобится. Для его запуска потребуются :
unrar
php
coreutils
wget


Исправляем пути в update.sh и nod32ms.conf.org и наслаждаемся!

Скачать можно из треша.

Re: Зеркало Nod32

Добавлено: 08 фев 2013, 21:28
zaka
ссылка битая перезалей если еще сохранилось.

Re: Зеркало Nod32

Добавлено: 10 фев 2013, 01:22
Raven
Скрипта к сожалению нет, но поищи на форуме у лисяры - там был один проект, весьма хороший, который к тому же успел уже обрости форками))))