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.
ОтветитьУдалитьИли вы пользуетесь пятой?
К сожалению (или к счастью) сейчас совершенно не пересекаюсь с виндовыми машинами, поэтому очень давно не занимался антивирусами. И связь с предприятием, где работала такая штука, была утеряна после увольнения человека, который заменил меня при увольнении. Поэтому не знаю, работает ли это хоть где-нибудь сейчас вообще.
ОтветитьУдалить