выложу в отдельную темку ..
ну ваабще то я считаю .. автообновлялка .. это из разряда поставил и забыл ..alexco писал(а):я же не просто так все этот делал, у меня ссейчас в разработке удобный веб интерфейс, с множеством полезных функций, конечно тем у кого нету и половины этих покетов немного возмущены, но этот скрипт немного другого уровня, а с косяками давайте разбираться вместеbalton писал(а):хм .. написал аналогичный скрипт для вытягивания баз нода .. но на шелле )) не ищет ключики просто тягает .. без пхп апача мускуля
давненько уж .. могу выложить ..

ну а скрипт совсем простенький .. две модификации .. первая только по размеру проверяет .. второй по размеру и билду .. сделал один раз сейчас вроде как не сильно напрягает вроде работает .. ну кроме что пару казусов с обновлениямми со с пиратский ресорсов ))
отдаю текст на растерзание .. что надо это wget или curl(у кого нет wget подправьте сами параметры

ах .. да .. еще одно .. тестировался скрипт только на базах а антивирусам второй версии .. поскольку третью я считаю слишком сложной для меня

ну ключики взял такие же .. в принципе когда сдохнут найти и поправить в соответствующих полях
перед работой скрипта должны быть созданы каталоги
~/nod32-upd - католог куда положен скрипт
~/nod32-upd/download/engine - каталог баз
~/nod32-upd/download/win/v2 - тоже каталог баз но какихто старых
Код: Выделить всё
#!/bin/sh
USER=""
PASSWORD=""
#ключи во вложении
USER_AGENT=""
#USER_AGENT='"NOD32 Update (Windows; U; 32bit; VDB 14291; BPC 2.50.26; OS: 5.1.2600 SP 0.0 NT;CH 0.0;LNG RUSSIAN;x32c;UWT 0;BEO 3)"'
PARAMS="--user=$USER --password=$PASSWORD --user-agent=$USER_AGENT -nv -a log.upd"
URL="http://u33.eset.com"
FILE=/nod_upd/update.ver
eval "wget $PARAMS -O update.ver $URL$FILE"
unrar p update.ver|grep "build=\|file\|size"|strings > update_test
#unrar p update.ver > update_test
#exit
for i in `cat update_test` ;
do
j=`echo $i | awk -F= '{print $1}'`;
case "$j" in
#get build from server (update file)
build) file_build=`echo $i | awk -F= '{print $2}'`;
;;
file) file_name=`echo $i | awk -F= '{print $2}'`;
;;
size) file_size=`echo $i | awk -F= '{print $2}'`;
# echo $file_name = $file_size;
##skip old-file is no base is 2007 year hz
# skip_file=`echo $file_name|grep "win\/v2"`;
if [ "$file_name" = "$skip_file" ]
then
continue;
fi
if [ ! -f ".$file_name" ]
then
touch .$file_name;
else
#get inside build of file
inside_build=`head -n 15 .$file_name|strings|grep "build="|awk -F= '{print $2}'`;
# echo "$file_build = $inside_build";
fi
#if build not eu
if [ "$inside_build" -ne "$file_build" ]
then
# echo $file_name = $file_size;
# echo "Get file by BUILD"
eval "wget $PARAMS -O .$file_name $URL$file_name";
fi
#check size
lsize=$(ls -l ".$file_name"|awk '{print $5}')
# echo "$lsize = $file_size";
if [ "$lsize" -ne "$file_size" ]
then
# echo $file_name = $file_size;
# echo "Get file by SIZE"
eval "wget $PARAMS -O .$file_name $URL$file_name";
fi
;;
esac
done;
