Вы скажете, что есть функция обновления из локальной папки. Функция-то есть, но реализована она крайне неудобно и вот почему:
При обновлении антивирусных баз из интернета, фактически, не требуется никаких вмешательств пользователя. Все что он увидит - 3 выскакивающих и самозакрывающихся окошка. Это - плюс. А при обновлении из папки, даже если установлена галка “Do not ask for the update source”, он все равно предложит выбрать каталог из списка. Все бы хорошо, но когда этот антивирус установлен в организации на 30 машинах и каждый из 30 чайников начинает звонить мне и спрашивать: “Тут выскочила фигня такая…”, пытаться прочесть мне текст, не зная английского… Сами понимаете - напрягает.
Наша организация выходит в интернет через прокси. Маршрутизатор на Debian 4 r1, сам проксик - squid. Поэтому было решено воспользоваться возможностью редиректа. В squid.conf:
redirect_program /usr/local/bin/redirector.plЗная, что по умолчанию АVG 8 версии обращается на адрес http://guru.grisoft.com/softw/80free/update/ можно изготовить и сам скрипт redirector.pl:
#!/usr/bin/perlКак результат: запрос на получение обновлений с http://guru.grisoft.com/softw/80free/update будет автоматически перенаправлен по соответствующему URL на локальный веб-сервер организации с IP 192.168.1.16.
$|=1;
while (<>)
{
s@http://guru.grisoft.com/softw/80free/update@http://192.168.1.16/avg_bases@;
print;
}
Веб-сервер должен быть установлен и настроен.
Теперь о том, как забирать файлы с сервера обновлений AVG:
Update manager AVG получает файл avginfoavi.ctf, парсит его и загружает нужные файлы. В соответствие с этим мы должны создать зеркало сервера обновлений. Нижеприведенный скрипт получает файл avginfo.ctf, извлекает из него имена файлов с обновлениями и загружает их в папку на сервере:
#!/bin/shДля работы скрипта необходим wget, также, если требуется, нужно испавить путь до wget-a. Ставим скрипт в крон, периодичность - по усмотрению.
WORKDIR=/home/corning/public_html/avg_bases
AVGUPD_URL=http://guru.grisoft.com/softw/80free/update
/bin/mkdir -p $WORKDIR
/usr/bin/wget -q -O $WORKDIR/avginfoavi.ctf $AVGUPD_URL/avginfoavi.ctf
if [ ! -e $WORKDIR/avginfoavi.ctf ]; then
echo "Error downloading AVG update filelist"
exit
fi
for file in `grep -o "[[:alnum:]]*.bin" $WORKDIR/avginfoavi.ctf`
do
if [ ! -e $WORKDIR/$file ]; then
/usr/bin/wget -q -O $WORKDIR/$file $AVGUPD_URL/$file
fi
done
Статья переделана под 8 версию антивируса. Оригинал для 7 версии тут: http://home.onego.ru/~rti/2007/03/01/35/
5 комментариев:
ctf`doif [ ! -e $WORKDIR/$file ]; then/usr/bin/wget -q -O $WORKDIR/$file $AVGUPD_URL/$filefidoneДля работы скрипта необходим wget, также, если требуется, нужно испавить путь до wget-a
А вас не смущает, что использование AVG Free в организации нарушает условия лицензирования?
AVG Anti-Virus Free Edition is for private, non-commercial, single computer use only. The use of AVG Free within any organization or for commercial purposes is strictly prohibited.
А кто говорит , что Free нельзя использовать, если он куплен. Просто этот материл и для организций, и для домашних локальных сетей. А способ для Commercial что для Free Edition один и тот же. Экономия трафика однако ;)
Вот тут http://liski.vsi.ru/ubuntu/index.php?topic=215.msg777 кстати написано как ОЧЕНЬ просто обновлять базу, пользуясь паролем суперпользователя.
Zwanze
а как написать в этом коде чтоб wget через прокси с авторизацией лез?
Отправить комментарий