пятница, 24 декабря 2010 г.

Новая версия скрипта обновления Comodo

Новая версия скрипта обновления Comodo. Сделанные изменения:

UPD: доступна новая версия скрипта.

1. Предыдущая версия файла versioninfo.ini не переименовывается, а копируется.
Недоработка была в том, что изредка по каким-то причинам скачать versioninfo с сервера Comodo не получалось, а старый файл переименовывался. В результате скрипт начинад чудить и выкачивать все имеющиеся у comodo обновления, что вместо экономии трафика, создавало перерасход. Теперь старый файл остается на своем месте.

2. Добавлена проверка успешности скачивания файла versioninfo программой wget.
Причина та же, что и в 1.

3. Wget теперь качает с ключом -nc.
Данный ключ позволяет не качать то, что уже было скачано. Из-за вышеупомянутой ошибки скрипт многократно выкачал все имеющиеся обновления comodo. Причем wget качал, не смотря на уже имеющиеся файлы.
Теперь, если скрипте есть еще ошибки, wget не будет выкачивать уже имеющиеся обновления.

4. Сообщения о скачанных файлах теперь заносятся в файл report.
Конечно же, скрипт запускается из cron и никто не видит, что же там происходит. А так есть журнал его работы.
#!/bin/bash

COMODO=/var/www/comodo

if [ -f $COMODO/av/updates50/versioninfo.ini ]; then
    cp -f $COMODO/av/updates50/versioninfo.ini{,.prev}
fi

cd $COMODO/av/updates50/
wget -N http://downloads.comodo.com/av/updates50/versioninfo.ini && (

BASE=$(grep MaxBase $COMODO/av/updates50/versioninfo.ini| grep -oE '[0-9]+')

if [ ! -e $COMODO/av/updates50/sigs/bases/BASE_END_USER_v$BASE.cav ]; then
    cd $COMODO/av/updates50/sigs/bases
    wget -nc http://download.comodo.com/av/updates50/sigs/bases/BASE_END_USER_v$BASE.cav && echo "$(date +'%Y.%m.%d %H:%M') Получена база N$BASE">>$COMODO/report
fi

let OLD_UPDATE=$(grep MaxAvail $COMODO/av/updates50/versioninfo.ini.prev| grep -oE '[0-9]+')+1

if [ $BASE -gt $OLD_UPDATE ]; then
    let OLD_UPDATE=$BASE+1
fi

NEW_UPDATE=$(grep MaxAvail $COMODO/av/updates50/versioninfo.ini| grep -oE '[0-9]+')

echo Debug: $(date +'%Y.%m.%d %H:%M') $OLD_UPDATE:$NEW_UPDATE>>$COMODO/report

cd $COMODO/av/updates50/sigs/updates
for i in $(seq $OLD_UPDATE $NEW_UPDATE); do
    echo Wget debug $(date +'%Y.%m.%d %H:%M')  $OLD_UPDATE $NEW_UPDATE >>$COMODO/report
    wget -nc http://downloads.comodo.com/av/updates50/sigs/updates/BASE_UPD_END_USER_v$i.cav && echo "$(date +'%Y.%m.%d %H:%M') Полученно обновление N$i">>$COMODO/report
done

) || echo "Скачать versioninfo.ini не удалось">>$COMODO/report

Комментариев нет:

Отправить комментарий