понедельник, 1 июля 2013 г.

Создание зеркала обновления для Avira Personal

Сохраняем данный скрипт в файл *.sh:

#!/bin/bash 
#Avira mirrorer v0.01 
#Working for Avira Free Antivirus 13 
#GB03Db 2013 

MIRROR=/media/Share/Udpate 
SRV_PATH=http://personal.avira-update.com/update/ 
OTHER="idx/master.idx idx/wks_avira13-win32-ru-pecl.idx webloader/win32/int/classic/map-classic-13-ru.xml.gz" 
INFO="idx/vdf.info.gz idx/rdf-common-int.info.gz \ 
       idx/ave2-win32-int.info.gz idx/wks_avira13-win32-ru-pecl.info.gz \ 
       idx/wks_avira13-win32-ru-pecl-info.info.gz idx/peclkey-common-int.info.gz \ 
       idx/scanner13-win32-int.info.gz idx/localdecider-win32-int.info.gz" 
GET="$(which wget) --timestamping --tries=10 --retry-connrefused --no-cache" 
MD5=$(which md5sum) 
ZCAT=$(which zcat) 

mkpath() { 
  [ -d $1 ] &&  return 0; 
  mkpath $(echo $1 | grep -E -o '.*/' | sed 's%/$%%') 
  [ $? -eq 0 ] && mkdir $1 
  return 0; 


get_with_path() { 
  ppwd=$(pwd) 
  npwd=$(echo $1 | grep -E -o '.*/' | sed 's%/$%%') 
  mkpath $npwd 
  cd $npwd 
  $GET ${SRV_PATH}${1} 
  cd $ppwd 


get_updates() { 
  get_with_path ${1} 
  [ -f ${1}.md5 ] && $MD5 -c ${1}.md5 --status 
  #Если индекс обновился или только появился то апдейтимся по нему: 
  [ $? -eq 0 ] || { 
    $MD5 ${1} > ${1}.md5 
    BIFS=$IFS 
    IFS=$'\n'; 
    for fname in $(${ZCAT} ${1} | grep '<NAME' | grep -E -o '".*\..*"' | sed 's%"%%g'); do 
      $(unset IFS && get_with_path ${fname}.gz) 
    done; 
    unset IFS 
  } 


[ -w $MIRROR ] || exit 3; 
#Иначе идем туда 
cd $MIRROR 

for str in ${OTHER}; do 
  get_with_path $str 
done 
#Качаем INFO-шки и базы из них 
for str in ${INFO}; do 
  get_updates $str 
done 

exit 0;

Где MIRROR= путь до папки с будущими обновлениями. Если выдает ошибки, проверяем: sh [пусть до скрипта].sh Ругает на некоторые строки, используем dos2unix, и пробуем выполнить скрипт снова. Скрипт скачает в папку "Update" (в данном примере) обновления.

Далее необходимо настроить антивирусы на обновления с определенной папки. Для начала в настройках антивируса, в разделе Безопасность, отключим самозащиту. В настройках обновления заранее выставим периодичность обновлений. Затем необходимо в файле AVWIN.INI (С:\User\AllUsers\ApplicationDats\Avira\AntiVirDesktop\CONFIG\) найти подраздел [UPDATE], и добавить следующие строки:


DownloadLocation=0

ShareDownloadUrl=\\Server\Share\Udpate

После этих изменений в файле, в настройки обновления не  заходим. Пробуем обновить антивирус. Добавляем выполнения данного скрипта по расписанию.