Help - Search - Members
Full Version: принудительная замена баз updater'ом
Kaspersky Lab Forum > Бета-тестирование > Универсальный Updater
GEKA2007
Возможно ли сделать так, чтобы при копировании файлов в папку с обновлениями ПРИНУДИТЕЛЬНО заменялись все обновленные файлы.
отчет:
Started installation files for retranslation
13:17:33: File updated 'D:/htdocs/updates/index/u0607g.xml'
13:17:33: File updated 'D:/htdocs/updates/index/masterv2.xml'
13:17:33: File updated 'D:/htdocs/updates/bases/apu/apu-0607g.xml'
13:17:33: File updated 'D:/htdocs/updates/bases/apu/apu.stt'
13:17:33: Not enough permissions 'D:/htdocs/updates/bases/apu/apu0001.dat'
13:17:33: Component is not retranslated 'APU'
13:17:33: File rolled back 'D:/htdocs/updates/bases/apu/apu-0607g.xml'
13:17:33: File rolled back 'D:/htdocs/updates/bases/apu/apu.stt'
13:17:33: Component is not retranslated 'AK6'
13:17:33: File rolled back 'D:/htdocs/updates/index/masterv2.xml'
13:17:33: Component is not retranslated
13:17:33: File rolled back 'D:/htdocs/updates/index/u0607g.xml'
13:17:33: Retranslation operation result 'Not enough permissions'

С локального сервера, куда копируются базы, постоянно обновляются другие ПК, останавливать сервер во время замены баз тоже не вариант.
Может есть какое-то решение?
GEKA2007
Ну или подскажите, как именно во время копирования баз остановить апаче в батнике апдейтера командой NET stop Apache2.2 и запустить после копирования баз. Прстое дописываение команд в .ini файле неработает.
Kapral
1. У вас что-то с правами
QUOTE
13:17:33: Not enough permissions 'D:/htdocs/updates/bases/apu/apu0001.dat'

от какого аккаунта работает задача обновления?
Принудительно (1 раз) измените все права для ветки - на Все:Полный

2.
CODE
@Echo Off
Net Stop Apache
Updater.exe -u -c -tf Trace.txt -rpt+ Log.txt
net Start Apache
GEKA2007
QUOTE(Kapral @ 15.03.2009 20:40) *
1. У вас что-то с правами

от какого аккаунта работает задача обновления?
Принудительно (1 раз) измените все права для ветки - на Все:Полный

2.
CODE
@Echo Off
Net Stop Apache
Updater.exe -u -c -tf Trace.txt -rpt+ Log.txt
net Start Apache


Не, дело не в правах. Запуск от администратора, допуск полный.

такая ошибка возникает, ТОЛЬКО если кто-то уже качает обновления из общей папки, апдейтер неможет их заменить, т.к. файл занят, т.е. скачивается. Если никто не качает обнов - все нормально (в логах тоже все в порядке).

Что неустраивает в предложенном скрипте:
Сначала останавливается апач, потом происходит обновление. Обновление занимает достаточно большой промежуток времени (3-4 минуты), что для локального сервера думаю неприемлимо.

Апачу нужно остановить не в самом начале обновлений, а только перед командой [Retranslation] в .ini файле. Ну и после ретрансляции уже запускать (процесс добавления баз займет всего пару секунд).
пользователь
QUOTE(GEKA2007 @ 15.03.2009 20:27) *
Апачу нужно остановить не в самом начале обновлений, а только перед командой [Retranslation] в .ini файле. Ну и после ретрансляции уже запускать (процесс добавления баз займет всего пару секунд).

Считаю, что проблема не связана с апдейтером, а виноват - апач.
Попробуйте сперва запускать апдейтер, потом останавливать апач, потом очищать папку с базами апача, потом переносить базы из апдейтера в папку апача. Перенос происходит практически мгновенно, поэтому период отключения серсиса будет буквально мгновенным. Что-то вроде этого:
CODE
@Echo Off
Updater.exe -u -c -tf Trace.txt -rpt+ Log.txt
Net Stop Apache
del старые_базы
move чего-то куда-то
net Start Apache


PS. Простите, а вы не могли бы описать ситуацию более подробно? Что у вас за сеть? Домовая? Офис? Что за антивирусы вы обновляете? Может быть есть более красивые способы обновления антивирусов?
Kapral
Удаление всей развесистой структуры обновок - достаточно продолжительное время

я бы посоветовал иметь 2 папки
1 с текущими базами, которая раздается апачем
2 с базами которые обновляются

Потом остановить апач
переименовать 2 папки местами
запустить

Вот так будет быстрее
пользователь
Ну хорошо:
CODE
@Echo Off
Updater.exe -u -c -tf Trace.txt -rpt+ Log.txt
Net Stop Apache
move чего-то куда-то
move откуда-то что-то
net Start Apache
del старые_базы

Я думаю, что GEKA2007 уже понял куда нужно копать.

PS. мой вопрос по структуре сети и обновляемым антивирусам остается в силе.
GEKA2007
Сеть внутригородская (около 100000 пользователей, касперский конечно же не у каждого), обновления на отдельной локальной машине (провайдер активно впихивает другой антивирус, обновлений для Каспера не держит). Обновляются примерно 200-400 компов в сутки (а возможно и больше).
Проблема конечно же не в самом апдейтере, он качает базы нормально.

Папка с обновлениями весит 170 метров (для несколько версий Касперского) удалять и заного копировать такой объем достаточно долго (по сравнению с обновлением файлов).
Обновления на локальном сервере происходит раз в час.

Для обновления отдельной 7 и 8 версии использовалась программка, которая удаляла всю папку с базой (весит достаточно мало) и запихивала обновленные файлы. Папка конечно же удалялась невсегда, т.к. некоторые файлы были заняты скачиванием, программка постоянно пытается удалить "занятый" файл, ну и когда файл удалиться (ну или несколько таких) запускалась команда на копирование новой папки сновыми базами. Даже С небольшим обьемом баз время замены может длится до минут 10 (в зависимости с какой скоростью скачиваются обновления с локального каталога).

На счет переименования надо подумать как это реализовать в автоматическом режиме, и возможно ли переименовать папку, если из нее идет одновременное скачивание баз.

Вот по этому и думаю, как отключить апачу только перед командой [Retranslation], и после ее завершения запустить апачу.
Может както самому дописать апдейтер, чтоб в него можно было встроить свои команды в ss_storage.ini файл?

В иделале это выглядело бы так (выд. жирным)
Часть строк из ss_storage.ini:

proxy_ntlm_access_token=1
update_srv_url0=$KL
update_srv_url1=
Net Stop Apache
[Retranslation]
Net Start Apache
download_bases=1

download_patches=1
пользователь
QUOTE(GEKA2007 @ 15.03.2009 23:26) *
Сеть внутригородская (около 100000 пользователей, касперский конечно же не у каждого), обновления на отдельной локальной машине (провайдер активно впихивает другой антивирус, обновлений для Каспера не держит). Обновляются примерно 200-400 компов в сутки (а возможно и больше).
Проблема конечно же не в самом апдейтере, он качает базы нормально.

Предложение по оптимизации снимается.

QUOTE
Папка с обновлениями весит 170 метров (для несколько версий Касперского) удалять и заного копировать такой объем достаточно долго (по сравнению с обновлением файлов).
Обновления на локальном сервере происходит раз в час.

Для обновления отдельной 7 и 8 версии использовалась программка, которая удаляла всю папку с базой (весит достаточно мало) и запихивала обновленные файлы. Папка конечно же удалялась невсегда, т.к. некоторые файлы были заняты скачиванием, программка постоянно пытается удалить "занятый" файл, ну и когда файл удалиться (ну или несколько таких) запускалась команда на копирование новой папки сновыми базами. Даже С небольшим обьемом баз время замены может длится до минут 10 (в зависимости с какой скоростью скачиваются обновления с локального каталога).

На счет переименования надо подумать как это реализовать в автоматическом режиме, и возможно ли переименовать папку, если из нее идет одновременное скачивание баз.

Вам предлагают не копировать, а перемещать или переименовывать папки.
В отличии от копирования это происходит практически мгновенно.

QUOTE
Вот по этому и думаю, как отключить апачу только перед командой [Retranslation], и после ее завершения запустить апачу.
Может както самому дописать апдейтер, чтоб в него можно было встроить свои команды в ss_storage.ini файл?

В иделале это выглядело бы так (выд. жирным)
Часть строк из ss_storage.ini:

proxy_ntlm_access_token=1
update_srv_url0=$KL
update_srv_url1=
Net Stop Apache
[Retranslation]
Net Start Apache
download_bases=1

download_patches=1

Размышления на эту тему рекомендую прекратить. Вы ошибаетесь считая инишник пакетным файлом. Инишник хранит настройки, а не команды.
Kapral
Так.

Допустим
D:\htdocs\updates - то что раздается апачем
D:\htdocs\updates_r - та папка в которую обновляет УУ

CODE
@Echo Off
Updater.exe -u -c -tf Trace.txt -rpt+ Log.txt
Net Stop Apache
PushD D:\htdocs\
Ren updates upd_temp
Ren updates_r updates
Ren upd_temp updates_r
PopD
Net Start Apache

Удалять ничего не надо wink.gif

Кстати - а почему так долго копирует обновления с временной папки
У меня 2-3 секунды
Обновления весят 186Мб
GEKA2007
QUOTE(Kapral @ 16.03.2009 03:13) *
Так.

Допустим
D:\htdocs\updates - то что раздается апачем
D:\htdocs\updates_r - та папка в которую обновляет УУ

CODE
@Echo Off
Updater.exe -u -c -tf Trace.txt -rpt+ Log.txt
Net Stop Apache
PushD D:\htdocs\
Ren updates upd_temp
Ren updates_r updates
Ren upd_temp updates_r
PopD
Net Start Apache

Удалять ничего не надо wink.gif

Кстати - а почему так долго копирует обновления с временной папки
У меня 2-3 секунды
Обновления весят 186Мб


Не, с временной копирует быстро, я имел ввиду полное копирование баз с предварительным удалением.
будем пробовать предложенные варианты, всем СПС за ответы.

P.S. Внутригородская локальная сеть с общими ресурсами, обновляются KAV, KIS., Каспер для рабочих станций и админкит.
Kapral
А зачем предварительное удаление баз????

Robocopy - идеальная утилита для построения зеркала каталога, особенно такого развесистого
hinote
ну, правильно вам написали - не надо ничего копировать и удалять, что долго, надо именно переименовывать директории в нужный момент (когда файлы не залокированы работающим веб-сервером) - это делается быстро (чтобы это было быстро, они все должны быть на одной партиции).

GEKA2007
QUOTE(hinote @ 16.03.2009 22:29) *
ну, правильно вам написали - не надо ничего копировать и удалять, что долго, надо именно переименовывать директории в нужный момент (когда файлы не залокированы работающим веб-сервером) - это делается быстро (чтобы это было быстро, они все должны быть на одной партиции).

Все на одном диске, будем думать на счет переименовывания (скриптом как раз получится и апач остановить и переименовать и заного все запустить), еще раз СПС.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.