Автоматическое скачивание AVPTool по расписанию

Достаточно часто приходится лечить Windows машины от вирусов, поэтому часто скачиваю Cureit и AVPTool, очень хоте автоматически (ежедневно, а может и чаще) скачивать новые версии этих утилит к себе на машину. Но тут я столкнулся с неожиданной трудностью. Нет прямой ссылки на скачивание новой версии AVPTool, да еще и ручное скачивание сопряжено с раздражающими мелочами — регистрацией.

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

В общем, был написан 2х строчный конвейер по распарсиванию каталога и скачке последней версии AVPTool.

curl http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/ 2>&1 | grep "`date +_%Y_%m_%d`" | sort -r | head -n1 | awk -F\" '{print "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/"$2}' | xargs wget

Думаю на днях сделаю отдельную страничку у себя на сайте, с прямыми ссылками на самые свежие Cureit и AVPTool.

И людям полезно, и мне будет проще знакомым объяснять где и как скачать эти утилиты Cureit и AVPTool (Kaspersky Virus Removal Tool).

Добавление от 14.12.2012

Как оказалось, касперский противореча своим заявлениям об ежедневном обновление своей утилиты AVPTool (Kaspersky Virus Removal Tool), все же имеет пропуски в обновлениях. Эти пропуски (на момент написания этого дополнения дата 14.12.2012, а последняя версия AVPTool от 11.12.2012) сбили мой скрипт. Ибо тут

grep "`date +_%Y_%m_%d`"

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

Решение простое:

curl http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/ | grep setup | sort -r | head -n1 | awk -F\" '{print "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/"$2}' | xargs wget

Убираем место с датой, грепаем по началу названия файла, и просто забираем файл последней версии, от какого бы числа она не была.

Добавление от 2.02.2013

При дальнейших изысканиях я наткнулся на этот Java скрипт: http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/index.js

Он имеет внутри себя актуальный на момент открытия список мультиязычных ссылок. Выглядит он так:

var urls = {  
"KAT-PT-BR" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-CS" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-DA" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-EL" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-ES" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-HU" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-IT" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-KO" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-LA" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-NL" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-PL" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-PT" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-ZH-HANS" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-SV" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe",  
"KAT-TR" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool9/setup_9.0.0.722_02.02.2013_11-12.exe", 
"KAT-RU" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/setup_11.0.0.1245.x01_2013_01_29_22_08.exe",  
"KAT-EN" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/setup_11.0.0.1245.x01_2013_01_29_22_08.exe",  
"KAT-FR" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/setup_11.0.0.1245.x01_2013_01_29_22_08.exe",  
"KAT-DE" : "http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/setup_11.0.0.1245.x01_2013_01_29_22_08.exe"  
}; 

Остается открыть его, чуть чуть отгрепать, и мы получим более легкий способ получения прямой ссылки на скачивание.

curl http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/index.js | grep KAT-RU | awk -F\" '{print $4}'

Итоговый код выглядит так:

curl http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/index.js | grep KAT-RU | awk -F\" '{print $4}' | xargs wget

Согласитесь, так гораздо лучше ))

Смотрите так же:

Автоматическое скачивание AVPTool по расписанию: 7 комментариев

  1. Снова нашел Ваш пост через поиск, т.к. снова начал искать решение под Windows… И дополнение уже подталкивает к нужным мыслям.

    Спасибо :)

    1. Гляньте чего набросал https://www.itroad.ru/avtomaticheskoe-skachivanie-avptool-po-raspisaniyu-teper-pod-windows

      И к стати, чем же вам так курл то не нравится? wget вы используете, а курл не хотите…

  2. Внес некоторые изменения в пост, в связи с кое какими вновь полученными фактами ;-)
    Во, как таинственно выразился )))))

  3. Он работает «не очень» по той причине, что всё делается через FTP, а существует необходимость подключиться с использованием http-proxy :)

    Вот смотрю на Ваш никсовый скрипт и думаю, почему же нету таких же удобств под Windows, что всё делается двумя строками :)

  4. Ага, это bash, и по этому данный пост находится в разделе «Полезное по Linux». А что с вашим скриптом не то? Почему он работает «не очень», я то в win скриптинге не понимаю, оценить не могу )

    И к стати, поставить Curl проще, чем под винду wget ))

  5. Судя по командам этот скрипт явно не для Windows… Есть такое:
    @echo off
    setlocal enableextensions
    wget.exe —directory-prefix=»%~dp0AVPTool» —output-document=nul —no-directories —no-remove-listing ftp://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/
    set AVPTOOL11=
    set AVPTDAT=
    for /f «tokens=9» %%f in (%~dp0AVPTool\.listing) do call :ParseFileName11 %%~f
    set AVPTDAT=
    del /f /q «%~dp0AVPTool\.listing»
    wget.exe —directory-prefix=»%~dp0AVPTool» —continue —no-directories ftp://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/avptool11/%AVPTOOL11%
    exit /b

    :ParseFileName11
    for /f «tokens=3-7 delims=_» %%g in («%~n1») do if /i «%%g%%h%%i%%j%%k» GTR «%AVPTDAT%» (set AVPTOOL11=%1&&set AVPTDAT=%%g%%h%%i%%j%%k)

    Но уж очень оно длинное и работает не очень… Хотя можно обойтись без Curl :)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.