/usr/bin/wget точно в usr :)
Printable View
/usr/bin/wget точно в usr :)
Просто если путь выкидывать и оставлять только wget, то из ХРОНа не работает... Вот...
YAG
Спасибо большое за проделанную работу! Сам раньше использовал скрипт на PHP выложенный в начале темы уважаемым Mamon. Только немного доработал его, сделав перебор паролей по списку. То есть в отдельный файлик можно было накидать сразу штук двадцать логинов и паролей, и как только текущий логин/пароль блокировались, то они удалялись из списка и брались следующие. Как только весь список пустел, то на мой почтовый адрес высылалось письмо с напоминанием пополнить список паролей. К сожалению данный скрипт перестал работать с третьей версией антивируса. Можно ли здесь сделать что-то подобное в вашем скрипте?
Непонятны еще несколько моментов:
1. Зачем, если логин и пароль неверны, обходить все сервера Eset?
2. Расскоментировал обе строчки, чтобы зеркала создавались для второй и третьей версии, но создается только для 3 и самих файлов обновлений в папке нет, только log.txt и update.ver. Соответственно обновления не происходит. Что не так?
3. И ошибка ли вот это?
Code:update.rar is not RAR archive
No files to extract
Именно это дальше и собирался реализовывать.
1. Учту. Не думал еще об этом.Quote:
Originally Posted by Protei
2. Немного не точно написал я там. Раскоментировать нужно что-то одно. Если нужны оба зеркала, то кладем в ХРОН два файла (в каждом раскоментировано что-то одно). Скрипт последний мой ставили? Первый вариант не качал в указанную папку, а раскладывал все как на официальных серверах, т.е. в корневой папке домена папка download и дальше.
3. Это не ошибка. Так получаецца из-за того что update.rar может быть в архиве или нет. Просто я вначале разархивирую, а потом проверяю :D. Переделаю в дальнейшем, чтоб глаза не мозолило. :-)
Скрипт брал последний выложенный на этой странце. Закомментировал строчку, чтобы создавалось зеркало только для третьей версии, все-равно не хочет создавать. Выдает только:
Удалил все из папки nod3 и заново запустил скрипт. Вот теперь нормально обновилось. То есть, возможно, есть баг в случае, когда первый раз обновление не происходит из-за того, что ключ неверный, а после этого уже и с правильным не обновляет, пока не удалишь старый update.ver.Code:--2008-05-03 17:36:19-- http://update.eset.com/eset_upd/update.ver
Resolving update.eset.com... 89.202.157.138
Connecting to update.eset.com|89.202.157.138|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 993 [application/octet-stream]
Saving to: `update.ver'
100%[=====================================================================================================================>] 993 --.-K/s in 0s
2008-05-03 17:36:19 (2.57 MB/s) - `update.ver' saved [993/993]
UNRAR 3.60 freeware Copyright (c) 1993-2006 Alexander Roshal
update.rar is not RAR archive
No files to extract
началась рабочая неделя :) как идеи с продолжением скрипта ?
Идей много. Занимацца некогда. Борюсь с провайдером. Пытаюсь писать диссер, который тоже уже поджимает :D. И еще вот занялся шейпером, потому что хочецца и качалку иметь на роутере и радио с телевизором слушать в локалке через инет и звонить через СИП, а тут на форуме мысли хорошие пошли по этой тематике. :-) А если по теме, то пока тестил скрипт. Устранил часть ошибок о которых тут говорили. Но сейчас выявил один серьезный недостаток и одну серьезную ошибку, которая может привести к неработоспособности закачанных обновлений. В ближайшее время поправлю. Выложу.
Может на выходных встретимся обсудим :)
гденить в центре
только не дисер ... у меня и так голова болит :)
Подработал о чем говорилось кроме перебора ключей и исправил несколько серьезных глюков. Тестим.
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 -inul 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'/' '/|sed 1d`
rm -f $WEB_ROOT/update.ver
rm -f $WEB_ROOT/update.rar
rm -f $WEB_ROOT/$AVBASE_DIR/log.txt
for UPDSERVERS in $SERVERS; do
cp -f -p $WEB_ROOT/$AVBASE_DIR/update.ver $WEB_ROOT/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 -inul update.rar
if [ ! -f "update.ver" ]; then
cp -f -p update.rar update.ver
fi
IFS=[
for section in `cat 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/^CONTINUOUS_.*]/DELETE]/;s/^REVERSE_.*]/DELETE]/;s/^PRELIMINARY_.*]/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/= */=/')
mv -f $WEB_ROOT/log.txt $WEB_ROOT/$AVBASE_DIR/log.txt
cd $WEB_ROOT/$AVBASE_DIR
/opt/bin/wget -a log.txt -N --cache=off -t 5 --connect-timeout=20 --http-user=$USER --password=$PASS $UPDSERVERS/$file
cd $WEB_ROOT
mv -f $WEB_ROOT/$AVBASE_DIR/log.txt $WEB_ROOT/log.txt
Auth=`grep 'Authorization failed' log.txt`
if [ ${#Auth} != 0 ]; then
echo Неверные ключики
rm -f log.txt
echo Неверные ключики > log.txt
rm -f update.rar
rm -f update.old
rm -f update.ver
mv -f $WEB_ROOT/log.txt $WEB_ROOT/$AVBASE_DIR/log.txt
exit
fi
Saved=`grep '$file.* saved' log.txt`
if [ ${#Saved} != 0 ]; then
echo Ошибка загрузки файла
rm -f log.txt
echo Ошибка загрузки файла > log.txt
rm -f update.rar
rm -f update.old
rm -f update.ver
exit
fi
echo [$(echo $sect|sed 's/file=.*\//file=/') >> $WEB_ROOT/$AVBASE_DIR/update.new
fi
done
IFS=' '
cd $WEB_ROOT/$AVBASE_DIR
if [ -f "update.new" ]; then
rm -f update.ver
mv -f update.new update.ver
touch -am -r $WEB_ROOT/update.rar $WEB_ROOT/$AVBASE_DIR/update.ver
fi
fi
cd $WEB_ROOT
rm -f update.rar
rm -f update.old
rm -f update.ver
done
mv -f $WEB_ROOT/log.txt $WEB_ROOT/$AVBASE_DIR/log.txt
YAG
Большое спасибо за скрипт!
А можно ли еще сделать инкрементное копирование с сервера Eset, чтобы не скачивать каждый раз заново файлы, которые уже есть?
Э-э-э... Что-то долго он пробегает - 4 минуты. У меня все файлики с нуля столько же качаются. Еще как-то странно стал лог писаться, что бы не делалось пишет: "Неверные ключики". Хотя файлики качает.
Долго занимает подключение к серверам... Особенно к u21... Я его уже выкинул даже. Он совсем тормознутый у них... Можно конечно выкинуть оббегание всех серверов, но что-то у меня уверенности нет что ЕСЕТ в ближайшее время опять что-нить не выкинет как с основными серверами 22 апреля. Думаю 4 минуты не большое время. Насчет неверных ключиков... Незнаю что сказать даже... Сколько тестил неверные ключики писал только на неверные... Попробуйте убедиться что они действительно верные.