Тестим... О замеченных багах сообщаем.
Теперь выкачивает только нужные языки. Складывает по человечески в папку указанную в начале скрипта. Оставил выкачивание так называемых инкрементных апдейтов, если можно так выразицца. ))) В принципе несложно сделать и это настраиваемым. Если надо, пишите. Так же можно сделать настраиваемым платформу (х86 х64) и пр. Я лично думаю это ни к чему поскольку это будет уже слишком индивидуальное зеркало.
Code:
#!/bin/sh
WEB_ROOT=/opt/share/www #путь к корневой папке домена, где будет лежать зеркало
AVBASE_DIR=nod3 #имя папки, куда будут валиться базы
SERVER=http://update.eset.com #сервер, откуда обновляемся
#DIR=nod_upd #Раскоментировать если нужно зеркало для версии 2
DIR=eset_upd #Раскоментировать если нужно зеркало для версии 3 или ESS
USER=EAV-********
PASS=**********
cd $WEB_ROOT
mkdir -p $WEB_ROOT/$AVBASE_DIR
/opt/bin/wget -N --cache=off -t 5 --connect-timeout=20 $SERVER/$DIR/update.ver
mv -f update.ver update.rar
/opt/bin/unrar x -y update.rar
if [ ! -f "update.ver" ]; then
mv -f update.rar update.ver
fi
SERVERS=$SERVER" "`grep Other= $WEB_ROOT/update.ver|sed s/Other=//|tr -d "\r"|sed s/,/'\n'/g|sed s/^.*@//|sed s/$DIR//|sed s/'\n'/' '/`
rm -f $WEB_ROOT/update.ver
rm -f $WEB_ROOT/update.rar
cd $WEB_ROOT/$AVBASE_DIR
rm -f log.txt
for UPDSERVERS in $SERVERS; do
cp -f -p update.ver update.old
/opt/bin/wget -a log.txt -N --cache=off -t 5 --connect-timeout=20 $UPDSERVERS/$DIR/update.ver
if [ "update.ver" -nt "update.old" ]; then
mv -f update.ver update.rar
/opt/bin/unrar x -y update.rar
if [ ! -f "update.ver" ]; then
cp -f -p update.rar update.ver
fi
IFS=[
for section in `cat $WEB_ROOT/$AVBASE_DIR/update.ver|sed '1s/\[//;s/^ *//'|grep -v '^#'|grep -v '^$'`; do
############################################################################
# ЗАКОМЕНТИРОВАТЬ далее НУЖНЫЕ языки #
sect=$(echo $section|sed 's/^.*_CZECH_.*]/DELETE]/') # Чешский
# sect=$(echo $sect|sed 's/^.*_ENGLISH_.*]/DELETE]/') # Английский
sect=$(echo $sect|sed 's/^.*_FRENCH_.*]/DELETE]/') # Французкий
sect=$(echo $sect|sed 's/^.*_GERMAN_.*]/DELETE]/') # Немецкий
sect=$(echo $sect|sed 's/^.*_ITALIAN_.*]/DELETE]/') # Итальянский
sect=$(echo $sect|sed 's/^.*_JAPANESE_.*]/DELETE]/') # Японский
sect=$(echo $sect|sed 's/^.*_POLISH_.*]/DELETE]/') # Польский
sect=$(echo $sect|sed 's/^.*_PORTUGUESE_.*]/DELETE]/') # Португальский
sect=$(echo $sect|sed 's/^.*_SLOVAK_.*]/DELETE]/') # Словацкий
sect=$(echo $sect|sed 's/^.*_SPANISH_.*]/DELETE]/') # Испанский
sect=$(echo $sect|sed 's/^.*_CROATIAN_.*]/DELETE]/') # Хорватский
sect=$(echo $sect|sed 's/^.*_HUNGARIAN_.*]/DELETE]/') # Венгерский
sect=$(echo $sect|sed 's/^.*_CHINESE_.*]/DELETE]/') # Китайский
sect=$(echo $sect|sed 's/^.*_DUTCH_.*]/DELETE]/') # Датский
##############################################################################
sect=$(echo $sect|sed 's/^VER]/DELETE]/;s/^HOSTS]/DELETE]/;s/^Expire]/DELETE]/;s/^SETUP]/DELETE]/;s/^COMPATLIST]/DELETE]/;s/^data0001]/DELETE]/')
if [ -z $(echo $sect|grep '^DELETE]') ]; then
eval $(echo $sect|tr -d "\r"|grep 'file='|sed 's/ *=/=/;s/= */=/')
/opt/bin/wget -a $WEB_ROOT/$AVBASE_DIR/log.txt -N --cache=off -t 5 --connect-timeout=20 --http-user=$USER --password=$PASS $UPDSERVERS/$file
echo [$(echo $sect|sed 's/file=.*\//file=/') >> update.new
fi
done
IFS=' '
rm -f update.ver
mv -f update.new update.ver
touch -am -r update.rar update.ver
else
cp -f -p update.old update.ver
fi
rm -f update.rar
rm -f update.old
done
Кстати, не увидел на сервере в настоящее время каких-нибудь файлов для русского языка, поэтому и не вносил его в настройки.
Antosha, обращаю Ваше внимание, что нужный язык надо ЗАКОМЕНТИТЬ, а не раскоментить. :-)