Пакет 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)"
За светлую идею спасибо xandr0s