7zip теперь не требуется. Сервер просто не распаковывает скачанные обновления, т.к. в моей сети не осталось антивирусов старых версий.
Как правильно подсказали, в скрипте имеются bash-зависимые выражения. Нужно иметь в виду при использовании других оболочек. Обязательно нужно проверить, не является ли /bin/bash символьной ссылкой на что-нибудь.
В процессе работы создает lock-файл в каталоге /tmp. Поэтому при неожиданном прерывании работы нужно не забыть вычистить lock-файл.
#!/bin/bash
COMODO=/var/www/html
CPATH=/av/updates53
[ ! -f /tmp/comodo.lock ] && (
touch /tmp/comodo.lock
[ -f $COMODO$CPATH/versioninfo.ini ] && cp -f $COMODO$CPATH/versioninfo.ini{,.prev}
cd $COMODO$CPATH
wget --timeout=5 -N http://downloads.comodo.com/$CPATH/versioninfo.ini && (
BASE=$(grep MaxBase $COMODO$CPATH/versioninfo.ini| grep -oE '[0-9]+')
[ ! -f $COMODO/av/updates53/sigs/bases/BASE_END_USER_v$BASE.cav.z ] && (
cd $COMODO$CPATH/sigs/bases
wget --timeout=5 -nc http://downloads.comodo.com/$CPATH/sigs/bases/BASE_END_USER_v$BASE.cav.z && echo "$(date +'%Y.%m.%d %H:%M') Получена база N$BASE">>$COMODO/report
)
let OLD_UPDATE=$(grep MaxAvail $COMODO$CPATH/versioninfo.ini.prev| grep -oE '[0-9]+')+1
[ $BASE -gt $OLD_UPDATE ] && let OLD_UPDATE=$BASE+1
NEW_UPDATE=$(grep MaxAvail $COMODO$CPATH/versioninfo.ini| grep -oE '[0-9]+')
cd $COMODO$CPATH/sigs/updates
for i in $(seq $OLD_UPDATE $NEW_UPDATE); do
wget --timeout=5 -nc http://downloads.comodo.com/$CPATH/sigs/updates/BASE_UPD_END_USER_v$i.cav.z && echo "$(date +'%Y.%m.%d %H:%M') Полученно обновление N$i">>$COMODO/report
done
) || ( echo "Скачать versioninfo.ini не удалось">>$COMODO/report ; exit 1 )
rm -f /tmp/comodo.lock )
Где-то ошибочка строка 30.
ОтветитьУдалить) || ( echo "Скачать versioninfo.ini не удалось">>$COMODO/report ; exit 1 )
Возможно shell другой. Уже писали, что скрипт слишком завязан на bash. Буду в той конторе, где скрипт работает, погляжу.
ОтветитьУдалитьА какая ошибка? Что пишет?
Когда копипастил скрипт, пропустил скобку на последней строке, потому и ругался.
ОтветитьУдалитьСпасибо, все работает.
ОтветитьУдалитьЕсть одно НО: Я переносил базы на новый linux-сервер, сделал ему тот же адрес, что был на старом, то есть на клиентских машинах теоретически ничего менять не пришлось. Так вот: клиентские машины не могут теперь с него обновиться, антивирус ругается, что не может обновиться и просит проверить мое интернет соединение.
ПЕРЕУСТАНОВКА антивируса решает проблему, но клиентских машин много, и переустановка означает большие потери времени.
Может приходилось сталкиваться? Возможно уже есть решение?
Иногда на некоторых машинах антивирь перестает обновляться, пишет "не удалось обновить базы, проверьте подключение к интернету", хотя у него в настройках указан мой локальный сервер обновлений (рабочий). Переустановка решает проблему, но можно ли как-то обойтись без нее?
ОтветитьУдалитьНадо смотреть в логах web-сервера. Антивирус запрашивает какой-то файл, которого нет на сервере. Ну и посмотреть, что это за файл. Иногда появляются новые версии и они ищут обновления уже в новых папках. Т.е. updates53, updates54 и т.д., нужно создавать симлинки.
ОтветитьУдалитьДа, это верно, у меня есть симлинк на папку updates55 и CIS версии 5.5 (текущий) с нее обновляется, но опять же через пару дней возникает та же проблема. Он перестает обновляться, ругается на соединение. Переустанавливаю с нуля либо даю ему один раз слазить в инет за обновлениями баз, после чего он спокойно продолжает обновляться с локалки какое-то время.
ОтветитьУдалитьКстати, свежеустановленный CIS так же способен обновляться с локалки какое-то время (то есть для первого обновления он лезет в локалку и радостно скачивает огромный файл базы и много мелких). Но вот почему это не работает ПОСТОЯННО?
вот тут http://forums.comodo.com/empty-t47164.0.html пишут, что для версии 6.0 обновления качать нужно с директории http://download.Comodo.com/av/updates58/sigs/bases.
ОтветитьУдалитьИли вы пользуетесь пятой?
К сожалению (или к счастью) сейчас совершенно не пересекаюсь с виндовыми машинами, поэтому очень давно не занимался антивирусами. И связь с предприятием, где работала такая штука, была утеряна после увольнения человека, который заменил меня при увольнении. Поэтому не знаю, работает ли это хоть где-нибудь сейчас вообще.
ОтветитьУдалить