AVG9: локальные базы с помощью ngnix и bash
Заворачиваем запрос AVG на внутренний (aka локальный) сервер обновлений.
Выбор nginx`а обусловлен его умением проксировать и изменять запросы http без каких-либо дополнительных софтин.
Итак, приступим.
Далее 192.168.1.1 - адрес локального сервера.
nginx.conf :
# коментарии удалил для экономии места. worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # опишем перенаправляющий прокси server { listen 90; server_name proxy-avg; # access_log /tmp/proxy-avg.access.log; # error_log /tmp/proxy-avg.error.log; location / { proxy_pass http://avgupd/; # proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; root /var/local/avg; index index.html index.htm; } } # собственно сам сервер обновлений server { listen 80; server_name avgupd; access_log /tmp/avgupd.access.log; error_log /tmp/avgupd.error.log; location / { # для платных версий rewrite ^.*softw/90/update/(.*)$ /$1 last; # для бесплатных версий #rewrite ^.*softw/90free/update/(.*)$ /$1 last; root /var/local/avg; index index.html index.htm; } } server { listen 80; server_name localhost; location / { root /srv/http/www; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
Добавим avgupd в /etc/hosts.
Проверим: кидаем в /usr/local/avg файл, например test.txt и ставим в броузере проски 192.168.1.1:90.
Теперь пробуем скачать http://update.avg.com/softw/90/update/test.txt
Здесь, возможно, нужно будет разобраться с правами доступа
Отлично, теперь приступим к закачке обновлений:
avg_update.sh :
#!/bin/bash DST="/var/local/avg" WGET="wget -nv -c -N -o /dev/null" cd $DST # для бесплатных версий #URLUPD="http://guru.avg.com/softw/90free/update" # для платных версий URLUPD="http://update.avg.com/softw/90/update" ${WGET} "${URLUPD}/avg9infowin.ctf" ${WGET} "${URLUPD}/avg9infoavi.ctf" sed -n '/\.bin/s/^bin(\([^\.]*\.bin\).*/\1/p' avg9infowin.ctf avg9infoavi.ctf | \ xargs -I FILE ${WGET} ${URLUPD}/FILE rm -f wget-log* # удаляем ненужные файлы ls *.bin > /tmp/binaries.list sed -n '/\.bin/s/^bin(\([^\.]*\.bin\).*/\1/p' avg9infowin.ctf avg9infoavi.ctf | \ xargs -I FILE sed -i "/FILE$/d" /tmp/binaries.list cat /tmp/binaries.list | xargs -I FILE rm -f FILE rm -f /tmp/binaries.list # здесь у меня добавлена еще упаковка в архив, #+ для быстрого скачивания по http для обновления на автономных машинах. cd -
Теперь стоит сделать проверку самого AVG (выставить прокси 192.168.1.1:90 и обновить) и запихать в cron часов на 5 утра, чтобы не мешало работе.
Чистых компов вам, господа =)
/tnx 2 angel2s2/
- _gaSh_'s blog
- 2247 просмотров
Страница для печати

Оо :)) Дружище, класс! Как раз на днях хотел этим вопросом заняться, для одной конторки. Сэкономил мне кучу времени и нервов :)))
Мега респект :))
Отправить комментарий