Страница 5 из 9
Re: Зеркало обновлений NOD
Добавлено: 2008-01-21 18:19:55
FreePascal
f0s писал(а):а он тока v2 обновляят? а то у меня пишет относительно v3:
Код: Выделить всё
[f0s@mail] /root/bin/> ./nod32.sh
Обновления отсутствуют
fgrep: update.ver: No such file or directory
Не найдены URL'ы в файле filelist.upd.
я так понимаю сам он эти файлы не создает, update.ver я могу вручную сздать конечно, но где взять filelist.upd
Скрипт качает как для V2 так и для V3 без ошибок, проверено уже!!!
Скрипт реально простой ищи ошибку...
update.ver скачивается с сервера и если не найден update.ver то filelist.upd и не появится тк строится из update.ver.
Смотри скачивается ли он и в какую диру.
Re: Зеркало обновлений NOD
Добавлено: 2008-01-22 10:35:02
f0s
хм.. но скрипт действительно качает теперь не только измененные файлы, а все.. вот лог, сказал много маленьких, + большой на 7,8мб для v2 и такойже бльшой для v3. вот лог с консоли:
Код: Выделить всё
100%[====================================>] 49 480 124,82K/s
10:27:03 (124,61 KB/s) - `em000_32_l0.nup' сохранён [49480/49480]
--10:27:03-- http://nod32.i-files.org/v3/em000_64_l0.nup
=> `em000_64_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 56 844 (56K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:04-- http://nod32.i-files.org/v3/em000_64_l0.nup
=> `em000_64_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 56 844 (56K) [text/plain]
100%[====================================>] 56 844 75,54K/s
10:27:04 (75,38 KB/s) - `em000_64_l0.nup' сохранён [56844/56844]
--10:27:04-- http://nod32.i-files.org/v3/em001_32_l0.nup
=> `em001_32_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 306 411 (299K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:05-- http://nod32.i-files.org/v3/em001_32_l0.nup
=> `em001_32_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 306 411 (299K) [text/plain]
100%[====================================>] 306 411 72,05K/s ETA 00:00
10:27:11 (57,52 KB/s) - `em001_32_l0.nup' сохранён [306411/306411]
--10:27:11-- http://nod32.i-files.org/v3/em001_32_l1.nup
=> `em001_32_l1.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 8 525 (8,3K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:11-- http://nod32.i-files.org/v3/em001_32_l1.nup
=> `em001_32_l1.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 8 525 (8,3K) [text/plain]
100%[====================================>] 8 525 --.--K/s
10:27:12 (67,17 KB/s) - `em001_32_l1.nup' сохранён [8525/8525]
--10:27:12-- http://nod32.i-files.org/v3/em005_32_l0.nup
=> `em005_32_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 29 448 (29K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:12-- http://nod32.i-files.org/v3/em005_32_l0.nup
=> `em005_32_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 29 448 (29K) [text/plain]
100%[====================================>] 29 448 50,36K/s
10:27:13 (50,29 KB/s) - `em005_32_l0.nup' сохранён [29448/29448]
--10:27:13-- http://nod32.i-files.org/v3/em005_32_l1.nup
=> `em005_32_l1.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 30 681 (30K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:13-- http://nod32.i-files.org/v3/em005_32_l1.nup
=> `em005_32_l1.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 30 681 (30K) [text/plain]
100%[====================================>] 30 681 45,48K/s
10:27:15 (45,42 KB/s) - `em005_32_l1.nup' сохранён [30681/30681]
--10:27:15-- http://nod32.i-files.org/v3/em005_32_l2.nup
=> `em005_32_l2.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 4 033 (3,9K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:15-- http://nod32.i-files.org/v3/em005_32_l2.nup
=> `em005_32_l2.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 4 033 (3,9K) [text/plain]
100%[====================================>] 4 033 --.--K/s
10:27:15 (16,44 MB/s) - `em005_32_l2.nup' сохранён [4033/4033]
--10:27:15-- http://nod32.i-files.org/v3/em008_32_l0.nup
=> `em008_32_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 155 162 (152K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:15-- http://nod32.i-files.org/v3/em008_32_l0.nup
=> `em008_32_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 155 162 (152K) [text/plain]
100%[====================================>] 155 162 115,93K/s
10:27:16 (115,70 KB/s) - `em008_32_l0.nup' сохранён [155162/155162]
--10:27:16-- http://nod32.i-files.org/v3/em008_32_l1.nup
=> `em008_32_l1.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 69 893 (68K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:17-- http://nod32.i-files.org/v3/em008_32_l1.nup
=> `em008_32_l1.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 69 893 (68K) [text/plain]
100%[====================================>] 69 893 81,08K/s
10:27:18 (80,75 KB/s) - `em008_32_l1.nup' сохранён [69893/69893]
--10:27:18-- http://nod32.i-files.org/v3/em008_64_l0.nup
=> `em008_64_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 211 777 (207K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:18-- http://nod32.i-files.org/v3/em008_64_l0.nup
=> `em008_64_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 211 777 (207K) [text/plain]
100%[====================================>] 211 777 61,58K/s ETA 00:00
10:27:21 (61,43 KB/s) - `em008_64_l0.nup' сохранён [211777/211777]
--10:27:21-- http://nod32.i-files.org/v3/em008_64_l1.nup
=> `em008_64_l1.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 95 662 (93K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:22-- http://nod32.i-files.org/v3/em008_64_l1.nup
=> `em008_64_l1.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 95 662 (93K) [text/plain]
100%[====================================>] 95 662 40,58K/s
10:27:24 (40,49 KB/s) - `em008_64_l1.nup' сохранён [95662/95662]
--10:27:24-- http://nod32.i-files.org/v3/em011_32_l0.nup
=> `em011_32_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 96 577 (94K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:24-- http://nod32.i-files.org/v3/em011_32_l0.nup
=> `em011_32_l0.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 96 577 (94K) [text/plain]
100%[====================================>] 96 577 182,63K/s
10:27:25 (182,10 KB/s) - `em011_32_l0.nup' сохранён [96577/96577]
--10:27:25-- http://nod32.i-files.org/v3/em011_32_l1.nup
=> `em011_32_l1.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 82 038 (80K) [text/plain]
Удаленный файл более новый, загружается.
--10:27:25-- http://nod32.i-files.org/v3/em011_32_l1.nup
=> `em011_32_l1.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 82 038 (80K) [text/plain]
100%[====================================>] 82 038 94,70K/s
10:27:26 (94,43 KB/s) - `em011_32_l1.nup' сохранён [82038/82038]
ЗАВЕРШЕНО --10:27:26--
Загружено: 10 279 765 байт в 20 файлах
[f0s@mail] /root/bin/>
а вот в логе однако пишется, что мол все ок, скачивается маленький файл:
Код: Выделить всё
[f0s@mail] /root/bin/> [f0s@mail] /usr/home/artpaint/www/data/nod32.artpaint/> cat updatever.log
--10:23:13-- http://nod32.i-files.org/v2/update.ver
=> `update.ver'
Распознаётся nod32.i-files.org... 212.26.141.89
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 2 847 (2,8K) [text/plain]
Удаленный файл более новый, загружается.
--10:23:13-- http://nod32.i-files.org/v2/update.ver
=> `update.ver'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 2 847 (2,8K) [text/plain]
0K .. 100% 2,47 MB/s
10:23:14 (2,47 MB/s) - `update.ver' сохранён [2847/2847]
ЗАВЕРШЕНО --10:23:14--
Загружено: 2 847 байт в 1 файлах
Re: Зеркало обновлений NOD
Добавлено: 2008-01-22 11:55:41
FreePascal
Помойму toughcat все обьяснил
http://forum.lissyara.su/viewtopic.php? ... =75#p50469
Тк имена генерятся рамдомно потому и качает заново!!!
Как проверить что мой скрипт работает?!
1. Запустить 2 раза подряд скрипт.
Второй раз точно должно появится в updatever.log чтото типа
Код: Выделить всё
--10:37:25-- http://nod32.i-files.org/v2/update.ver
=> `update.ver'
Распознаётся nod32.i-files.org... 212.26.141.89
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 2 847 (2,8K) [text/plain]
Файл на сервере не новее локального файла `update.ver' -- не загружается.
ЗАВЕРШЕНО --10:37:25--
Загружено: 0 байт в 0 файлах
Анализ етого лога не даст скрипту перейти на этап скачивания обновлений.
2. Запускаем скрипт 1 раз. Удаляем update.ver или вносим в него изменения.
В результате updatever.log, если внести изменения.
Код: Выделить всё
--10:42:59-- http://nod32.i-files.org/v2/update.ver
=> `update.ver'
Распознаётся nod32.i-files.org... 212.26.141.89
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 2 847 (2,8K) [text/plain]
Размеры файлов не совпадают (локальный размер 2851) -- загружается.
--10:42:59-- http://nod32.i-files.org/v2/update.ver
=> `update.ver'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 2 847 (2,8K) [text/plain]
0K .. 100% 163,44 KB/s
10:43:00 (163,44 KB/s) - `update.ver' сохранён [2847/2847]
ЗАВЕРШЕНО --10:43:00--
Загружено: 2 847 байт в 1 файлах
сообщает что файл изменен что приводит к запуску этапа скачавания обновлений.
Код: Выделить всё
--10:43:00-- http://nod32.i-files.org/v2/nod3C21.nup
=> `nod3C21.nup'
Распознаётся nod32.i-files.org... 212.26.141.89
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 23 017 (22K) [text/plain]
Файл на сервере не новее локального файла `nod3C21.nup' -- не загружается.
--10:43:00-- http://nod32.i-files.org/v2/nod6159.nup
=> `nod6159.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 7 573 (7,4K) [text/plain]
Файл на сервере не новее локального файла `nod6159.nup' -- не загружается.
--10:43:00-- http://nod32.i-files.org/v2/nod48AD.nup
=> `nod48AD.nup'
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 7 594 (7,4K) [text/plain]
Файл на сервере не новее локального файла `nod48AD.nup' -- не загружается.
--10:43:01-- http://nod32.i-files.org/v2/nod3C6C.nup
=> `nod3C6C.nup'
но файлы обновлений то не изменились и скачивать нечего не будем.
Раньше работало все точно так же, только не было етого 7М файла и было мало заметно!!!!
Алгоритм работы скрипта не менялся!!!!
З.Ы. Халява есть халява!!!!
Есть вариант конечно сравнивать файлы по размеру, сейчас подумаем.
Re: Зеркало обновлений NOD
Добавлено: 2008-01-22 18:00:21
FreePascal
Чтото наверное страшное получилось
Теперь парсим update.ver и сравниваем date и size с ранее сохраненным.
Код: Выделить всё
#!/bin/sh
DMASTER="/usr/local/bin/wget"
DMLOG="updatever.log"
TMPFILE="filelist.upd"
#Фраза по которой определяем что файл не изменен
PHRASE="Файл на сервере не новее локального файла"
BASEDIR_V2="/usr/local/www/data/nodbase/v2"
BASEDIR_V3="/usr/local/www/data/nodbase/v3"
HOSTUP_V2="http://nod32.i-files.org/v2/"
HOSTUP_V3="http://nod32.i-files.org/v3/"
#$1 - BASEDIR
#$2 - HOSTUP
dUpdateVer(){
cd $1
$DMASTER -nd -m -o $DMLOG ${2}update.ver
if [ -z `fgrep "$PHRASE" $DMLOG | sed -n '$='` ]; then
cat -t update.ver | sed s/'\^M'// >updatever.new
analyse $2
else
echo "Update not available"
fi
}
analyse(){
if [ -s updatever.tmp ]; then
POINTER=`grep -n '\[' updatever.new | grep -o '^[0-9]*'`
NUM_OF_STRING_P=`echo "$POINTER"|sed -n '$='`
NUM_OF_STRING_U=`sed -n '$=' updatever.new`
CURRENT_STRING="1"
while [ $CURRENT_STRING -le $NUM_OF_STRING_P ]; do
bCHAPTER=`echo "$POINTER"|sed -n $CURRENT_STRING'p'`
if [ $CURRENT_STRING -eq $NUM_OF_STRING_P ]; then
eCHAPTER=$NUM_OF_STRING_U
else
NEXTSTR=`expr $CURRENT_STRING + 1`
eCHAPTER=`echo "$POINTER"|sed -n $NEXTSTR'p'`
eCHAPTER=`expr $eCHAPTER - 1`
fi
CHAPTER=`sed "$bCHAPTER,$eCHAPTER!d" updatever.new`
cNAME=`echo "$CHAPTER"|sed -n 1p`
cDATE=`echo "$CHAPTER"|fgrep 'date='|sed s/'date='//g`
cSIZE=`echo "$CHAPTER"|fgrep 'size='|sed s/'size='//g`
cFILE=`echo "$CHAPTER"|fgrep 'file='|sed s/'file='//g`
CURRENT_STRING_T=`fgrep -n "$cNAME" updatever.tmp|grep -o '^[0-9]*'`
if [ $CURRENT_STRING ]; then
bCHAPTER_T=$CURRENT_STRING_T
CURRENT_STRING_T=`expr $CURRENT_STRING_T + 1`
while [ $CURRENT_STRING_T -le $NUM_OF_STRING_U ]; do
PICK=`sed -n $CURRENT_STRING_T'p' updatever.tmp|grep -o '\['`
if [ $CURRENT_STRING_T -eq $NUM_OF_STRING_U ]; then
eCHAPTER_T=$CURRENT_STRING_T
break
fi
if [ $PICK ]; then
if [ $PICK = '[' ]; then
eCHAPTER_T=`expr $CURRENT_STRING_T - 1`
break
fi
fi
CURRENT_STRING_T=`expr $CURRENT_STRING_T + 1`
done
CHAPTER_T=`sed "$bCHAPTER_T,$eCHAPTER_T!d" updatever.tmp`
cDATE_T=`echo "$CHAPTER_T"|fgrep 'date='|sed s/'date='//g`
cSIZE_T=`echo "$CHAPTER_T"|fgrep 'size='|sed s/'size='//g`
else
"New CHAPTER"
echo "$cFILE" >>$TMPFILE
fi
if [ $cDATE != $cDATE_T ]; then
echo "$cFILE" >>$TMPFILE
elif [ $cSIZE != $cSIZE_T ]; then
echo "$cFILE" >>$TMPFILE
fi
CURRENT_STRING=`expr $CURRENT_STRING + 1`
done
if [ -s $TMPFILE ]; then
dUpdateFl $1
else
echo "Files not changed"
fi
else
fgrep "file=" update.ver | sed -e 's/file=//' > $TMPFILE
dUpdateFl $1
fi
}
dUpdateFl(){
echo "Update Downloading..."
$DMASTER -np -N -nH -B $1 -i $TMPFILE
mv updatever.new updatever.tmp
rm $TMPFILE
}
dUpdateVer $BASEDIR_V2 $HOSTUP_V2
dUpdateVer $BASEDIR_V3 $HOSTUP_V3
exit 0
Советую удалить все с директориий обновления.
Ищите баги....
Re: Зеркало обновлений NOD
Добавлено: 2008-01-23 11:10:43
freeman
Ну как, кто уже потестил это что то сташное случившееся ?
Чего только не приходится придумать для экономии десятка мегабайт
p.s. автору респект
Re: Зеркало обновлений NOD
Добавлено: 2008-01-23 11:47:28
demondem10
А почему у меня не работает нихера, ни качает
Код: Выделить всё
ns# /usr/local/etc/rc.d/nodupdate.sh
/usr/local/etc/rc.d/nodupdate.sh: line 17: cd: /usr/local/www/apache22/data/html/dialin.kz/nodbase/v3: No such file or directory
Downloading 'update.ver' from 'http://nod32.i-files.org/v3'...
--16:49:54-- http://nod32.i-files.org/v3/update.ver
=> `v3/update.ver'
Распознаётся nod32.i-files.org... 212.26.141.89
Устанавливается соединение с nod32.i-files.org|212.26.141.89|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 4 517 (4,4K) [text/plain]
100%[================================>] 4 517 --.--K/s
16:49:56 (303,23 KB/s) - `v3/update.ver' сохранён [4517/4517]
ЗАВЕРШЕНО --16:49:56--
Загружено: 4 517 байт в 1 файлах
cat: /usr/local/www/apache22/data/html/dialin.kz/nodbase/v3/update.ver: No such file or directory
Не найдены URL'ы в файле filelist.upd.
че выкачал и че с этим делать? ктонить расскажите?
Re: Зеркало обновлений NOD
Добавлено: 2008-01-23 13:53:15
FreePascal
demondem10 писал(а):А почему у меня не работает нихера, ни качает
Код: Выделить всё
ns# /usr/local/etc/rc.d/nodupdate.sh
/usr/local/etc/rc.d/nodupdate.sh: line 17: cd: /usr/local/www/apache22/data/html/dialin.kz/nodbase/v3: No such file or directory
Диры я создавать его не учил!!!!!
По поводу скрипта:
Измененные файлы он правельно определяет и качает, но теперь же нужно
создавать свой update.ver, что не было предусмотрено!!!!
Скрипт переделан, но нужно немного его пока потестить!!
Re: Зеркало обновлений NOD
Добавлено: 2008-01-23 14:35:57
f0s
скриптец запустил, он снова скачал два файла по 8 мег.. или он теперь после первого запуска - послежующие будет нормально выполнять?
Re: Зеркало обновлений NOD
Добавлено: 2008-01-23 16:38:03
FreePascal
f0s писал(а):скриптец запустил, он снова скачал два файла по 8 мег.. или он теперь после первого запуска - послежующие будет нормально выполнять?
Конечно скачал, и создал временный файл чтобы больше его не качать.
Завтра буду на работе постараюсь выделить время на доведения скрипта до ума.
Re: Зеркало обновлений NOD
Добавлено: 2008-01-25 9:25:41
ekrn.exe
f0s писал(а):какая-то лажа.. сервер nod32.i-files.org чо-то больше не обновляется.. есть другой адрес:
Товарищ, если вы будете в открытую выкладывать
другой адрес на форуме, ESET и его прикроет. Уж подотрите
Такие вещи через личку передают.
Re: Зеркало обновлений NOD
Добавлено: 2008-01-25 17:06:09
f0s
ekrn.exe писал(а):f0s писал(а):какая-то лажа.. сервер nod32.i-files.org чо-то больше не обновляется.. есть другой адрес:
Товарищ, если вы будете в открытую выкладывать
другой адрес на форуме, ESET и его прикроет. Уж подотрите
Такие вещи через личку передают.
не особо понял, что ты хотел сказать, и вообще, мне ли это было....
Re: Зеркало обновлений NOD
Добавлено: 2008-01-28 8:04:06
Urgor
f0s писал(а):ekrn.exe писал(а):f0s писал(а):какая-то лажа.. сервер nod32.i-files.org чо-то больше не обновляется.. есть другой адрес:
Товарищ, если вы будете в открытую выкладывать
другой адрес на форуме, ESET и его прикроет. Уж подотрите
Такие вещи через личку передают.
не особо понял, что ты хотел сказать, и вообще, мне ли это было....
Он про то что нефиг палить урлы с халявными обновами.
Вот тут.
Re: Зеркало обновлений NOD
Добавлено: 2008-01-28 9:42:41
f0s
ок. но пароли то я не палил
там пароль требуется для обновления...
Re: Зеркало обновлений NOD
Добавлено: 2008-01-28 11:51:58
FreePascal
Будем надеяться допилил
Код: Выделить всё
#!/bin/sh
DMASTER="/usr/local/bin/wget"
DMLOG="updatever.log"
TMPFILE="filelist.upd"
#Фраза по которой определяем что файл не изменен
#PHRASE="Файл на сервере не новее локального файла"
PHRASE="Server file no newer than local file"
BASEDIR_V2="/usr/local/www/data/nodbase/v2"
BASEDIR_V3="/usr/local/www/data/nodbase/v3"
HOSTUP_V2="http://nod32.i-files.org/v2/"
HOSTUP_V3="http://nod32.i-files.org/v3/"
VARDIR_V2="/var/nodupdate/v2"
VARDIR_V3="/var/nodupdate/v3"
#$1 - VARDIR
#$2 - HOSTUP
#$3 - BASEDIR
dUpdateVer(){
cd $1
#По идее по завершении и при старте етого не должно быть.
if [ -s $TMPFILE ]; then
rm $TMPFILE
fi
if [ -s filelist.rm ]; then
rm filelist.rm
fi
if [ -s updatever.new ]; then
rm updatever.new
fi
if [ -s user_update.ver ]; then
rm user_update.ver
fi
$DMASTER -nd -m -o $DMLOG ${2}update.ver
if [ -z `fgrep "$PHRASE" $DMLOG | sed -n '$='` ]; then
cat -t update.ver | sed s/'\^M'// >updatever.new
analyse $2 $3
else
echo "Files up to date"
fi
}
analyse(){
if [ -s updatever.tmp ]; then
POINTER=`grep -n '\[' updatever.new | grep -o '^[0-9]*'`
NUM_OF_STRING_P=`echo "$POINTER"|sed -n '$='`
NUM_OF_STRING_U=`sed -n '$=' updatever.new`
CURRENT_STRING="1"
while [ $CURRENT_STRING -le $NUM_OF_STRING_P ]; do
bCHAPTER=`echo "$POINTER"|sed -n $CURRENT_STRING'p'`
if [ $CURRENT_STRING -eq $NUM_OF_STRING_P ]; then
eCHAPTER=$NUM_OF_STRING_U
else
NEXTSTR=`expr $CURRENT_STRING + 1`
eCHAPTER=`echo "$POINTER"|sed -n $NEXTSTR'p'`
eCHAPTER=`expr $eCHAPTER - 1`
fi
CHAPTER=`sed "$bCHAPTER,$eCHAPTER!d" updatever.new`
cNAME=`echo "$CHAPTER"|sed -n 1p`
cDATE=`echo "$CHAPTER"|fgrep 'date='|sed s/'date='//g`
cSIZE=`echo "$CHAPTER"|fgrep 'size='|sed s/'size='//g`
cFILE=`echo "$CHAPTER"|fgrep 'file='|sed s/'file='//g`
CURRENT_STRING_T=`fgrep -n "$cNAME" updatever.tmp|grep -o '^[0-9]*'`
if [ $CURRENT_STRING ]; then
bCHAPTER_T=$CURRENT_STRING_T
CURRENT_STRING_T=`expr $CURRENT_STRING_T + 1`
while [ $CURRENT_STRING_T -le $NUM_OF_STRING_U ]; do
PICK=`sed -n $CURRENT_STRING_T'p' updatever.tmp|grep -o '\['`
if [ $CURRENT_STRING_T -eq $NUM_OF_STRING_U ]; then
eCHAPTER_T=$CURRENT_STRING_T
break
fi
if [ $PICK ]; then
if [ $PICK = '[' ]; then
eCHAPTER_T=`expr $CURRENT_STRING_T - 1`
break
fi
fi
CURRENT_STRING_T=`expr $CURRENT_STRING_T + 1`
done
CHAPTER_T=`sed "$bCHAPTER_T,$eCHAPTER_T!d" updatever.tmp`
cDATE_T=`echo "$CHAPTER_T"|fgrep 'date='|sed s/'date='//g`
cSIZE_T=`echo "$CHAPTER_T"|fgrep 'size='|sed s/'size='//g`
cFILE_T=`echo "$CHAPTER_T"|fgrep 'file='|sed s/'file='//g`
else
# "New CHAPTER"
echo "$cFILE" >>$TMPFILE
fi
if [ $cDATE != $cDATE_T ]; then
echo "$cFILE" >>$TMPFILE
echo "$cFILE_T" >>filelist.rm
echo "$CHAPTER" >>user_update.ver
elif [ $cSIZE != $cSIZE_T ]; then
echo "$cFILE" >>$TMPFILE
echo "$cFILE_T" >>filelist.rm
echo "$CHAPTER" >>user_update.ver
else
echo "$CHAPTER_T" >>user_update.ver
fi
CURRENT_STRING=`expr $CURRENT_STRING + 1`
done
if [ -s $TMPFILE ]; then
dUpdateFl $1 $2
else
echo "Files not changed"
fi
else
fgrep "file=" updatever.new | sed -e s/'file='//g > $TMPFILE
dUpdateFl $1 $2
fi
}
dUpdateFl(){
echo "Update Downloading..."
$DMASTER -np -N -nH -B $1 -i $TMPFILE
if [ -s filelist.rm ]; then
NUM_OF_STRING=`sed -n '$=' filelist.rm`
CURRENT_STRING="1"
while [ $CURRENT_STRING -le $NUM_OF_STRING ]; do
STRING=`sed -n $CURRENT_STRING'p' filelist.rm`
rm $2/$STRING
CURRENT_STRING=`expr $CURRENT_STRING + 1`
done
rm filelist.rm
else
rm $2/*.nup
fi
NUM_OF_STRING=`sed -n '$=' $TMPFILE`
CURRENT_STRING="1"
while [ $CURRENT_STRING -le $NUM_OF_STRING ]; do
STRING=`sed -n $CURRENT_STRING'p' $TMPFILE`
mv $STRING $2
CURRENT_STRING=`expr $CURRENT_STRING + 1`
done
if [ -s user_update.ver ]; then
cp user_update.ver updatever.tmp
mv user_update.ver $2/update.ver
else
cp updatever.new updatever.tmp
cp update.ver $2/update.ver
fi
rm $TMPFILE
rm updatever.new
}
dUpdateVer $VARDIR_V2 $HOSTUP_V2 $BASEDIR_V2
dUpdateVer $VARDIR_V3 $HOSTUP_V3 $BASEDIR_V3
exit 0
1. Удаляем все ваши обновления(хотя он и сам ето сделает если нет updatever.tmp).
2. Создаем все необходимые директории.
3. Запускаем скрипт(ставим в cron)
По идее скрипт будет контролировать размер и дату файлов, анализируя скачанный и ранее сохраненный update.ver.
Если дата или размер меняется то старый файл удаляется а новый загружается.
Тк имена постоянно меняются и генерятся рамдомно, а мы то оставляем неизмененные файлы нетронутыми, то в папке обновления уже
совершенно другой файл update.ver отличный от того что скачивается с сервера обновления.
P.S. Good Luck
Re: Зеркало обновлений NOD
Добавлено: 2008-02-13 17:48:55
pimlab
FreePascal писал(а):Будем надеяться допилил
Код: Выделить всё
#!/bin/sh
DMASTER="/usr/local/bin/wget"
DMLOG="updatever.log"
TMPFILE="filelist.upd"
#Фраза по которой определяем что файл не изменен
#PHRASE="Файл на сервере не новее локального файла"
PHRASE="Server file no newer than local file"
BASEDIR_V2="/usr/local/www/data/nodbase/v2"
BASEDIR_V3="/usr/local/www/data/nodbase/v3"
HOSTUP_V2="http://nod32.i-files.org/v2/"
HOSTUP_V3="http://nod32.i-files.org/v3/"
VARDIR_V2="/var/nodupdate/v2"
VARDIR_V3="/var/nodupdate/v3"
#$1 - VARDIR
#$2 - HOSTUP
#$3 - BASEDIR
dUpdateVer(){
cd $1
#По идее по завершении и при старте етого не должно быть.
if [ -s $TMPFILE ]; then
rm $TMPFILE
fi
if [ -s filelist.rm ]; then
rm filelist.rm
fi
if [ -s updatever.new ]; then
rm updatever.new
fi
if [ -s user_update.ver ]; then
rm user_update.ver
fi
$DMASTER -nd -m -o $DMLOG ${2}update.ver
if [ -z `fgrep "$PHRASE" $DMLOG | sed -n '$='` ]; then
cat -t update.ver | sed s/'\^M'// >updatever.new
analyse $2 $3
else
echo "Files up to date"
fi
}
analyse(){
if [ -s updatever.tmp ]; then
POINTER=`grep -n '\[' updatever.new | grep -o '^[0-9]*'`
NUM_OF_STRING_P=`echo "$POINTER"|sed -n '$='`
NUM_OF_STRING_U=`sed -n '$=' updatever.new`
CURRENT_STRING="1"
while [ $CURRENT_STRING -le $NUM_OF_STRING_P ]; do
bCHAPTER=`echo "$POINTER"|sed -n $CURRENT_STRING'p'`
if [ $CURRENT_STRING -eq $NUM_OF_STRING_P ]; then
eCHAPTER=$NUM_OF_STRING_U
else
NEXTSTR=`expr $CURRENT_STRING + 1`
eCHAPTER=`echo "$POINTER"|sed -n $NEXTSTR'p'`
eCHAPTER=`expr $eCHAPTER - 1`
fi
CHAPTER=`sed "$bCHAPTER,$eCHAPTER!d" updatever.new`
cNAME=`echo "$CHAPTER"|sed -n 1p`
cDATE=`echo "$CHAPTER"|fgrep 'date='|sed s/'date='//g`
cSIZE=`echo "$CHAPTER"|fgrep 'size='|sed s/'size='//g`
cFILE=`echo "$CHAPTER"|fgrep 'file='|sed s/'file='//g`
CURRENT_STRING_T=`fgrep -n "$cNAME" updatever.tmp|grep -o '^[0-9]*'`
if [ $CURRENT_STRING ]; then
bCHAPTER_T=$CURRENT_STRING_T
CURRENT_STRING_T=`expr $CURRENT_STRING_T + 1`
while [ $CURRENT_STRING_T -le $NUM_OF_STRING_U ]; do
PICK=`sed -n $CURRENT_STRING_T'p' updatever.tmp|grep -o '\['`
if [ $CURRENT_STRING_T -eq $NUM_OF_STRING_U ]; then
eCHAPTER_T=$CURRENT_STRING_T
break
fi
if [ $PICK ]; then
if [ $PICK = '[' ]; then
eCHAPTER_T=`expr $CURRENT_STRING_T - 1`
break
fi
fi
CURRENT_STRING_T=`expr $CURRENT_STRING_T + 1`
done
CHAPTER_T=`sed "$bCHAPTER_T,$eCHAPTER_T!d" updatever.tmp`
cDATE_T=`echo "$CHAPTER_T"|fgrep 'date='|sed s/'date='//g`
cSIZE_T=`echo "$CHAPTER_T"|fgrep 'size='|sed s/'size='//g`
cFILE_T=`echo "$CHAPTER_T"|fgrep 'file='|sed s/'file='//g`
else
# "New CHAPTER"
echo "$cFILE" >>$TMPFILE
fi
if [ $cDATE != $cDATE_T ]; then
echo "$cFILE" >>$TMPFILE
echo "$cFILE_T" >>filelist.rm
echo "$CHAPTER" >>user_update.ver
elif [ $cSIZE != $cSIZE_T ]; then
echo "$cFILE" >>$TMPFILE
echo "$cFILE_T" >>filelist.rm
echo "$CHAPTER" >>user_update.ver
else
echo "$CHAPTER_T" >>user_update.ver
fi
CURRENT_STRING=`expr $CURRENT_STRING + 1`
done
if [ -s $TMPFILE ]; then
dUpdateFl $1 $2
else
echo "Files not changed"
fi
else
fgrep "file=" updatever.new | sed -e s/'file='//g > $TMPFILE
dUpdateFl $1 $2
fi
}
dUpdateFl(){
echo "Update Downloading..."
$DMASTER -np -N -nH -B $1 -i $TMPFILE
if [ -s filelist.rm ]; then
NUM_OF_STRING=`sed -n '$=' filelist.rm`
CURRENT_STRING="1"
while [ $CURRENT_STRING -le $NUM_OF_STRING ]; do
STRING=`sed -n $CURRENT_STRING'p' filelist.rm`
rm $2/$STRING
CURRENT_STRING=`expr $CURRENT_STRING + 1`
done
rm filelist.rm
else
rm $2/*.nup
fi
NUM_OF_STRING=`sed -n '$=' $TMPFILE`
CURRENT_STRING="1"
while [ $CURRENT_STRING -le $NUM_OF_STRING ]; do
STRING=`sed -n $CURRENT_STRING'p' $TMPFILE`
mv $STRING $2
CURRENT_STRING=`expr $CURRENT_STRING + 1`
done
if [ -s user_update.ver ]; then
cp user_update.ver updatever.tmp
mv user_update.ver $2/update.ver
else
cp updatever.new updatever.tmp
cp update.ver $2/update.ver
fi
rm $TMPFILE
rm updatever.new
}
dUpdateVer $VARDIR_V2 $HOSTUP_V2 $BASEDIR_V2
dUpdateVer $VARDIR_V3 $HOSTUP_V3 $BASEDIR_V3
exit 0
1. Удаляем все ваши обновления(хотя он и сам ето сделает если нет updatever.tmp).
2. Создаем все необходимые директории.
3. Запускаем скрипт(ставим в cron)
По идее скрипт будет контролировать размер и дату файлов, анализируя скачанный и ранее сохраненный update.ver.
Если дата или размер меняется то старый файл удаляется а новый загружается.
Тк имена постоянно меняются и генерятся рамдомно, а мы то оставляем неизмененные файлы нетронутыми, то в папке обновления уже
совершенно другой файл update.ver отличный от того что скачивается с сервера обновления.
P.S. Good Luck
У меня к сожалению этот скрипт не заработал правильно.
Обновление скачивает, c ошибками заканчивает и update.ver -> 0kb .
Не знаю как лог с экрана показать
Он точно рабочий?
Другие скрипты взятые отсюда работают, единственное неудобство каждую ночь стираю полностью всю папку с update и скачиваю всё заново, а то вырастает слишком.
Re: Зеркало обновлений NOD
Добавлено: 2008-02-13 18:23:10
helloworld
Я не стал изобретать велосипед, каждую ночь папка /usr/local/www/data/nod/v2 удаляется, создается, в нее качаются около 8-10 мб обновлений и так день за днем.
Код: Выделить всё
#!/bin/sh
WGET="/usr/local/bin/wget" # Путь к программе wget
WORKDIR="/usr/local/www/data/nod/v2" # Сюда мы будем ложить обновления
TMPFILE="filelist.upd" # Файл для хранения списка файлов обновлений
# Здесь нужно указать, с какого сервера брать обновления
# v2 - для 2 версии нода
# v3 - для 3 версии нода
HOST="http://nod32.i-files.org/v2/"
MSG_DOWN="Downloading 'update.ver' from '$HOST'... "
rm -R $WORKDIR
mkdir -p $WORKDIR
cd $WORKDIR
clear && echo $MSG_DOWN
$WGET -nH "${HOST}update.ver" # Скачиваем файл с сервера обновлений в котором указаны названия файлов обновлений
cat $WORKDIR/update.ver | grep "file" | sed -e 's/file=//' | sed -e 's/download/eval/' > $TMPFILE # Выбираем строки с названиями файлов
$WGET -np -N -nH -B $HOST -i filelist.upd # Качаем список файлов обновлений
rm filelist.upd
Re: Зеркало обновлений NOD
Добавлено: 2008-02-13 23:45:24
freeman
На твоём велосипеде "ездить" можно только раз в сутки, маловато будет
Re: Зеркало обновлений NOD
Добавлено: 2008-02-14 9:15:55
demondem10
Ребяты а почему создается папка /nodbase/nod_upd/
nod_upd/ в папке /nodbase/nod_upd/ и кладется туда новый фаил version. а базы для обновлений кладутся в папку выше /nodbase/nod_upd/engene0 и engene2 и пока я не скопирую из папки /nod_upd/nod_upd/ фаил
version в папку /nodbase/nod_upd/ обновления для моих клиетнов не происходит , подскажите как с этим бороться?
вот скрипт
Код: Выделить всё
#!/usr/local/bin/bash
WGET="/usr/local/bin/wget" # путь к программе wget
WORKDIR="/.../nodbase/nod_upd" # куда ложить
TMPFILE="filelist.upd" # фаилы для хронения списка выкачиваемых файлов
#HOST="http://jaf.ru/nod32up/" # от куда нуна качать обновления
#HOST="http://nod32.i-files.org/v3"
HOST="http://nod32.rekremlin.ru/nod_upd/" # от куда нуна качать обновления
#HOST="http://nyagan.ru/~gir/mirror/"
#HOST="http://ved.metroland.ru/updates/nod32/"
#HOST="http://www.vareza.net/nod32"
MSG_DOWN="Downloading 'update.ver' from '$HOST'... "
cd $WORKDIR
clear && echo $MSG_DOWN
$WGET -r -nH "$HOST/update.ver" # скачиваем файлы с сервера обновлений в котором
cat $WORKDIR/update.ver | grep "file" | sed -e 's/file=//' | sed -e 's/download/
$WGET -np -N -nH -B $HOST -i filelist.upd # качаем список файлов обновлений
rm filelist.upd
Re: Зеркало обновлений NOD
Добавлено: 2008-02-14 11:22:10
f0s
helloworld писал(а):Я не стал изобретать велосипед, каждую ночь папка /usr/local/www/data/nod/v2 удаляется, создается, в нее качаются около 8-10 мб обновлений и так день за днем.
ну и в чем смысл твоего "скрипта"? каждый день по 8-10мб тащить...
Re: Зеркало обновлений NOD
Добавлено: 2008-02-14 12:35:47
Alex Keda
f0s писал(а):helloworld писал(а):Я не стал изобретать велосипед, каждую ночь папка /usr/local/www/data/nod/v2 удаляется, создается, в нее качаются около 8-10 мб обновлений и так день за днем.
ну и в чем смысл твоего "скрипта"? каждый день по 8-10мб тащить...
скорей всего - в том что омжно обновлять несколько сотен клиентов с этой машины.
по трафу - полюбому выигрыш.
Re: Зеркало обновлений NOD
Добавлено: 2008-02-14 13:36:12
BAV_Lug
Уже месяца четыре точно, работает скрипт Urgor от 20 сентября 2007 г. 12:51 Обновляюсь с официального зеркала. Никаких проблем вообще не возникает. Трафик минимальный.
Re: Зеркало обновлений NOD
Добавлено: 2008-02-14 14:21:55
f0s
lissyara писал(а):f0s писал(а):helloworld писал(а):Я не стал изобретать велосипед, каждую ночь папка /usr/local/www/data/nod/v2 удаляется, создается, в нее качаются около 8-10 мб обновлений и так день за днем.
ну и в чем смысл твоего "скрипта"? каждый день по 8-10мб тащить...
скорей всего - в том что омжно обновлять несколько сотен клиентов с этой машины.
по трафу - полюбому выигрыш.
в данном случае, логичней использовать скрипт от
FreePascal. Суть такая же - обновляться нескольким машинам, но тянет в день по 200кб.
Re: Зеркало обновлений NOD
Добавлено: 2008-02-15 10:56:24
freeman
BAV_Lug писал(а):Уже месяца четыре точно, работает скрипт Urgor от 20 сентября 2007 г. 12:51 Обновляюсь с официального зеркала. Никаких проблем вообще не возникает. Трафик минимальный.
И имеешь постоянный головняк с ворованием ключей ?
Ну зато обновляется быстрее, тоже в общем полезный скрипт, каждый выбирает по потребностям.
Re: Зеркало обновлений NOD
Добавлено: 2008-02-15 11:12:51
Urgor
freeman писал(а):BAV_Lug писал(а):Уже месяца четыре точно, работает скрипт Urgor от 20 сентября 2007 г. 12:51 Обновляюсь с официального зеркала. Никаких проблем вообще не возникает. Трафик минимальный.
И имеешь постоянный голвняк с ворованием ключей ?
Н ну зато обновляется быстрее, тоже в общем полезный скрипт, каждый выбирает по потребностям.
Во-1: Что мешает обновляться с левых серваков? Да и ключик переставить раз в месяц не так уж и сложно, надо только знать где брать
за то нет задержет и прочего гимора... ведь пока вы пилили скрипты, качали по 10 мегов за раз, у мя все обновлялось раз в три часа, и качало копейки.
Во-2: Заплатить 1500 рэ за одну лицензию и качать обновы может любая конторра, особенно если там сотни компов (или тут есть люди ваяющие зеркала для обновления двух/трех клиентов????). IMHO даже для домашней локальной сети купить одну лицензию не проблема, на 10 человек выйдет по 150 рэ, не столь большие деньги.
Re: Зеркало обновлений NOD
Добавлено: 2008-02-15 11:33:23
Urgor
Вот кста, адаптированный для скачки с rekremlin.ru...
Код: Выделить всё
#!/usr/bin/perl
use LWP;
# path to store updates
$PATH="/home/www/nod";
$WGET="/usr/local/bin/wget"; # Путь к программе wget
# username/password for updates registered users
$LOGIN='none';
$PASS='none';
# URL for updates
$URL_UPD="http://nod32.rekremlin.ru/nod_upd/";
$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";
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;
($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");
}