Сторінка 2 з 9

Re: Планувальник завдань

Додано: 20 лютого 2013, 14:42
maza11
пан Томима
свои скрипты можете выложить?

Re: Планувальник завдань

Додано: 20 лютого 2013, 15:42
пан Томима
Первый скрипт делает бекап с последующим восстановлением БД с помощью gbak. Обратите внимание, после бекапа делается тестовое восстановление в файл zvit_test, который будет лежать рядом с основной базой, и после окончания этот файл не удаляется, это сделано специально, что бы можно было при необходимости быстро переименованием БД восстановить работоспособность.
Перед запуском нужно вписать свои:
dbdir = путь к базе медка
fbdir = путь к firebird-у
utildir = путь к утилитам(там должны лежать архиватор 7z.exe + dll и postie.exe)
А также путь к почтовому серверу и почтовые адреса отправителя и получателей.
| Показать

Код: Виділити все

@echo off
set dbdir=Path_to_Medoc\db\
set dbfnm=zvit
set dbfile=%dbdir%%dbfnm%
set wrkdir=%~dp0
set dbarcdir=%wrkdir%\db_backup\%date:~6,4%\%date:~3,2%\
set mytime=%time::=-%
set mytime=%mytime: =0%
set dbarcfile=%dbarcdir%%date:.=-%_%dbfnm%_fbk_%mytime:~0,8%
set fbuser=SYSDBA
set fbpass=masterkey
set fbdir=C:\Program Files\Common Files\Firebird2\bin\
set gfix="%fbdir%gfix.exe"
set gbak="%fbdir%gbak.exe"
set utildir=%wrkdir%Utils\
set logfile=%wrkdir%DB_Backup.log
set repfile=%wrkdir%DB_Backup.rep
set postie=%utildir%postie.exe
set zip=%utildir%7z.exe
set errfile=%wrkdir%~errlog.tmp
set tmpfiles=%wrkdir%*.tmp

set emailhost=my_smtp_server
set [email protected]
set [email protected]
set [email protected]
set emailpass=
set emailsubj=M.E.DOC DB_Backup service

echo -------------------------------------- >> %logfile%
del %repfile% 1> nul 2> nul

rem === Stoping service zvitgrp ==============================
echo %date% %time:~0,5% Stop zvitgrp service  >> %logfile%
net stop zvitgrp  2> %errfile% 
if errorlevel 1 goto stop_serv_failed
echo Stoping zvitgrp....OK >> %repfile%

:db_archiving
rem === Creating archive copies ==============================
echo %date% %time:~0,5% Creating archive copies >> %logfile%
cd /d %wrkdir%
del /f %dbfnm%_4.zip 1> nul 2> nul
ren %dbfnm%_3.zip %dbfnm%_4.zip 1> nul 2> nul
ren %dbfnm%_2.zip %dbfnm%_3.zip 1> nul 2> nul
ren %dbfnm%_1.zip %dbfnm%_2.zip 1> nul 2> nul
ren %dbfnm%.zip %dbfnm%_1.zip 1> nul 2> nul
%zip% a -tzip %dbfnm%.zip "%dbfile%.fdb" > %errfile%
if errorlevel 1 goto arc_failed
echo %date% %time:~0,5% Archiving completed >> %logfile%
echo Archiving..........OK >> %repfile%

:db_bacup
rem === Creating backup of DB ================================
echo %date% %time:~0,5% Creating backup >> %logfile%
%gbak% -b -v -ig -g -user %fbuser% -pas %fbpass% "%dbfile%.fdb" "%dbfnm%.fbk" 2> %errfile%
if errorlevel 1 goto backup_failed
%zip% a -tzip %dbarcfile%.zip "%dbfnm%.fbk" 1> nul 2> nul
echo %date% %time:~0,5% Backup completed >> %logfile%
echo Backup.............OK >> %repfile%

:testrestore
rem === Testing backup =======================================
echo %date% %time:~0,5% Testing backup >> %logfile%
%gbak% -c -v -rep -user %fbuser% -pas %fbpass% "%dbfnm%.fbk" "%dbfile%_Test.fdb" 2> %errfile%
if errorlevel 1 goto testrestore_failed
echo %date% %time:~0,5% Testing backup completed >> %logfile%
echo Testing............OK >> %repfile%

:restore
rem === Restore from backup to DB ============================
echo %date% %time:~0,5% Restore backup >> %logfile%
%gbak% -c -v -rep -user %fbuser% -pas %fbpass% "%dbfnm%.fbk" "%dbfile%.fdb" 2> %errfile%
if errorlevel 1 goto restore_failed
echo %date% %time:~0,5% Restore backup completed >> %logfile%
echo Restore............OK >> %repfile%

:start_srv
rem === Start service zvitgrp ================================
echo %date% %time:~0,5% Start zvitgrp service  >> %logfile%
net start zvitgrp  2> %errfile% 
if errorlevel 1 goto start_serv_failed
echo Starting zvitgrp...OK >> %repfile%
goto end_exit

:backup_failed
type %errfile% >> %logfile%
echo %date% %time:~0,5% Backup failed! >> %logfile%
echo Backup.............X >> %repfile%
goto start_srv

:testrestore_failed
type %errfile% >> %logfile%
echo %date% %time:~0,5% Test backup failed! >> %logfile%
echo Test..........X >> %repfile%
goto start_srv

:restore_failed
type %errfile% >> %logfile%
echo %date% %time:~0,5% Restore failed! >> %logfile%
echo Restore............X >> %repfile%
goto start_srv

:arc_failed
type %errfile% >> %logfile%
echo %date% %time:~0,5% Archiving failed! >> %logfile%
echo Archiving..........X >> %repfile%
goto start_srv

:stop_serv_failed
type %errfile% >> %logfile%
echo %date% %time:~0,5% Stoping service failed! >> %logfile%
echo Stoping zvitgrp....X >> %repfile%
goto send_report

:start_serv_failed
type %errfile% >> %logfile%
echo %date% %time:~0,5% Starting service failed! >> %logfile%
echo Starting zvitgrp...X >> %repfile%

:send_report
echo %date% %time:~0,5% Sending report  >> %logfile%
%postie% -host:%emailhost% -to:%emailto1% -from:%emailfrom% -s:%emailsubj% -file:%repfile% >> %logfile%
rem %postie% -host:%emailhost% -to:%emailto2% -from:%emailfrom% -s:%emailsubj% -file:%repfile% >> %logfile%

:end_exit
del %dbfnm%.fbk 1> nul 2> nul
del %tmpfiles% 1> nul 2> nul
Второй скрипт делает бекап всей папки медка.
Перед запуском нужно вписать свои:
medocdir = путь к медку.
utildir = путь к утилитам(там должны лежать архиватор 7z.exe + dll и postie.exe)
А также путь к почтовому серверу и почтовые адреса отправителя и получателей.
| Показать

Код: Виділити все

@echo off

set medocdir="path_to Medoc"
set wrkdir=%~dp0
set utildir=%wrkdir%Utils\
set logfile=%wrkdir%medoc_backup.log
set repfile=%wrkdir%medoc_backup.rep
set postie=%utildir%postie.exe
set arcfnm=medoc_zvit
set zip=%utildir%7z.exe
set errfile=%wrkdir%~errlog.tmp
set tmpfile=%wrkdir%~temp.tmp
set tmpfiles=%wrkdir%*.tmp

set emailhost=my_smtp_server
set [email protected]
set [email protected]
set [email protected]
set emailpass=
set emailsubj=M.E.DOC BackUp service


echo ------------------------------------------ >> %logfile%
del %repfile% 1> nul 2> nul

rem === Stoping service zvitgrp ==============================
echo %date% %time:~0,5% Stop zvitgrp service  >> %logfile%
net stop zvitgrp  2> %errfile% 
if errorlevel 1 goto stop_serv_failed
echo Stoping zvitgrp....OK >> %repfile%

:archiving
rem === Creating archive copies ==============================
echo %date% %time:~0,5% Creating archive copies >> %logfile%
cd /d %wrkdir%
del /f %arcfnm%_4.zip 1> nul 2> nul
ren %arcfnm%_3.zip %arcfnm%_4.zip 1> nul 2> nul
ren %arcfnm%_2.zip %arcfnm%_3.zip 1> nul 2> nul
ren %arcfnm%_1.zip %arcfnm%_2.zip 1> nul 2> nul
ren %arcfnm%.zip %arcfnm%_1.zip 1> nul 2> nul
%zip% a -tzip %arcfnm%.zip %medocdir% > %errfile%
if errorlevel 1 goto arc_failed
echo %date% %time:~0,5% Archiving completed >> %logfile%
echo Archiving..........OK >> %repfile%

:start_srv
rem === Start service zvitgrp ==============================
echo %date% %time:~0,5% Start zvitgrp service  >> %logfile%
net start zvitgrp  2> %errfile% 
if errorlevel 1 goto start_serv_failed
echo Starting zvitgrp...OK >> %repfile%
goto end_exit

:stop_serv_failed
type %errfile% >> %logfile%
echo %date% %time:~0,5% Stoping service failed! >> %logfile%
echo Stoping zvitgrp....X >> %repfile%
goto send_report

:arc_failed
type %errfile% >> %logfile%
echo %date% %time:~0,5% Archiving failed! >> %logfile%
echo Archiving..........X >> %repfile%
goto start_srv

:start_serv_failed
type %errfile% >> %logfile%
echo %date% %time:~0,5% Starting service failed! >> %logfile%
echo Starting zvitgrp...X >> %repfile%

:send_report
echo %date% %time:~0,5% Sending report  >> %logfile%
%postie% -host:%emailhost% -to:%emailto1% -from:%emailfrom% -s:%emailsubj% -file:%repfile% >> %logfile%
rem %postie% -host:%emailhost% -to:%emailto2% -from:%emailfrom% -s:%emailsubj% -file:%repfile% >> %logfile%

:end_exit
del %tmpfiles% 1> nul 2> nul
Если будет использоваться другой архиватор или мейлер, то соответственно нужно будет менять ключи запуска этих утилит.

Re: Это глюк или фича «Планувальника»?

Додано: 20 лютого 2013, 17:13
ANB
пан Томима писав:
ANB писав:Через день-два захожу для проверки в "Планувальник", а там птичка активации модуля планувальника снята.
Вопрос. Деактивация планувальника задумана разработчиком или только у меня такая особенность.
Я не смог заставить нормально работать планировщик задач, птичка с активации сама снимается, да и не понимает он сетевые пути, и опять же, не умеет делать бекап предприятия и/или БД, а бекапит полностью всю папку.
Потому я сделал пару скриптов, которые запускаются планировщиком виндовса. Один делает бекап всей папки медка в архив находящийся в папке со скриптом(одновременно хранятся пять последних архивов), второй делает бекапы базы средствами firebird-а, а за одно держит архивы последних пяти баз, на случай экстренного восстановления. Также этот скрипт сразу после бекпа делает восстановление из него, это позволяет избавляться от удаленных элементов и не выращивать базу до неимоверных размеров. Оба скрипта, в случае неудачи, отправляют на заданный адрес письмо(можно легко сделать что бы письма слались каждый раз) и пишут свои действия в лог. Не самое изящное решение, но по крайней мере их работа предсказуема.
Если кому интересно могу выложить, к самим скриптам понадобятся консольный архиватор, я использую консольную часть 7zip-а, и консольная программа отправки почтовых сообщений.
Также у обоих скриптов есть ограничение: т.к. командная строка не может напрямую работать с сетевыми адресами, для бекапа в сетевую папку, нужно это папку монтировать как диск и оттуда запускать скрипт, при этом я пока не придумал как это делать без необходимости входить в профиль пользователя(т.е. после перезагрузки, что бы скрипт заработал нужно войти в профиль, например админа).
У меня эта птичка не ставилась где-то до 119-120 апдейта. Потом вроде заработал планувальник, и установленная птичка не снималась, а сейчас новая фича. Птичка установлена, и, иногда бекапы создаются. Но теперь она пропадает по неизвестным причинам спустя некоторое время, а не сразу. Причем если зайду в программу, поставлю птичку, потом выйду-зайду птичка активации стоит. Но через день-два птичка слетает самопроизвольно.

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

По-поводу бекапа базы медка стандартным планировщиком винды + скрипт. Я тоже сторонник именно такого решения. Мне очень не нравится эта внутрення хрень в медке от разработчика. От картинок и графики в глазах рябит, а огромный календарь в планувальнике вообще "шедевр" дизайнерского искусства. Толку от этих "украшений" аж никакого, один вред по-моему. Такое впечатление, что какой-то начинающий программер, "совершенствует" свои способности по работе с графическими объектами, и создает видимость большой и нужной работы. Только толку от этой работы с рисовалками и календарями никакого. Это, как молодой начинающий сантехник при ремонте аварийного сортира, вместо ремонта водопровода и канализации начинает клеить обои, вешать на стены красивые календари, картины и т.п. Только люди, при этом, нужду за углом справляют. Прошу пардону, за лирику.

З.Ы. Спасибо за исходники. На досуге почитаю.

Re: Планувальник завдань

Додано: 21 березня 2013, 09:48
Медок1
Вікно вибору папки для збереження резервної копії відкривається тільки при створенні першого завдання на створення резервної копії ,
но возникла необходимость изменить папку резервной копии как это сделать?

Re: Планувальник завдань

Додано: 21 березня 2013, 10:26
JojIG
Адміністрування - параметри системи - Резервне копіювання.
Если поле выбора папки не активно - чекаем галку "Здійснювати резервне копіювання.... "

Re: Планувальник завдань

Додано: 21 березня 2013, 10:47
пан Томима
Медок1 писав:но возникла необходимость изменить папку резервной копии как это сделать?
Ищите в папке медка файл BackupManager.exe.config и в нем правьте путь.

Re: Планувальник завдань

Додано: 21 березня 2013, 11:30
priup
пан Томима писав:
Медок1 писав:но возникла необходимость изменить папку резервной копии как это сделать?
Ищите в папке медка файл BackupManager.exe.config и в нем правьте путь.
| Показать
Безымянный.JPG
Безымянный.JPG (118.06 Кіб) Переглянуто 5745 разів
И какой путь тута править, уважаемый ??? :?: :?: :o

Re: Планувальник завдань

Додано: 21 березня 2013, 13:17
Белокопытов Геннадий
Окно выбора папки для сохранения бэкапа bkz в Планировщике заданий открывается только при первом создании задания, для изменения пути к каталогу РК редактируете BackupManager.exe.config. В Вашем случае более всего что в планировщике еще не создавались записи для создания РК или обновления, поэтому в файле нет записи пути сохранения РК

Re: Планувальник завдань

Додано: 21 березня 2013, 13:28
пан Томима
priup писав:И какой путь тута править, уважаемый ??? :?: :?: :o
Создайте в планировщике хотя бы одну задачу по бекапу, и в этом файле будет путь.

Re: Планувальник завдань

Додано: 21 березня 2013, 16:59
maza11
priup писав:
пан Томима писав: И какой путь тута править, уважаемый ??? :?: :?: :o
у меня вот так

Код: Виділити все

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
  </startup>
  <BackupPath>\\Server\Box</BackupPath>
</configuration>
но у меня все равно планировщик не разу не работал

Re: Планувальник завдань

Додано: 21 березня 2013, 17:24
пан Томима
maza11 писав:<BackupPath>\\Server\Box</BackupPath>
.....
но у меня все равно планировщик не разу не работал
Медок не понимает сетевых путей, потому даже если бы и сработал планировщик, то ни чего не получилось бы. Хотя разрабы утверждают что планировщик работает, но я не смог его завести, потому и пришлось скрипты делать.

Re: Планувальник завдань

Додано: 21 березня 2013, 17:27
maza11
пан Томима писав:
maza11 писав:<BackupPath>\\Server\Box</BackupPath>
.....
но у меня все равно планировщик не разу не работал
Медок не понимает сетевых путей, потому даже если бы и сработал планировщик, то ни чего не получилось бы. Хотя разрабы утверждают что планировщик работает, но я не смог его завести, потому и пришлось скрипты делать.
Как это не понимает? какой тогда смысл в бекапе на тот же компе где медок стоит?
п.с. попробую как сетевой диск папку примонтировать, завтра отпишусь

Re: Планувальник завдань

Додано: 21 березня 2013, 17:40
пан Томима
maza11 писав:Как это не понимает? какой тогда смысл в бекапе на тот же компе где медок стоит?
А вот не понимает. Все задаются этим вопросом, но внятного ответа так и нет. Причем Бест-Звит(младший, и теперь уже покойный, брат Медка) работал с сетевыми дисками без малейших проблем, а Медок ругается.
maza11 писав:п.с. попробую как сетевой диск папку примонтировать, завтра отпишусь
На сетевую папку, смонтированную как диск, можно делать бекап, но только в ручном режиме, планировщик не захотел делать бекап, или я просто не знаю как его заставить.

Re: Планувальник завдань

Додано: 21 березня 2013, 18:05
priup
Белокопытов Геннадий писав:Окно выбора папки для сохранения бэкапа bkz в Планировщике заданий открывается только при первом создании задания, для изменения пути к каталогу РК редактируете BackupManager.exe.config. В Вашем случае более всего что в планировщике еще не создавались записи для создания РК или обновления, поэтому в файле нет записи пути сохранения РК
Дело ясное, что дело тёмное...
Чем дальше в лес, тем злее партизаны.... :cry: Медок от Бухгалтера всё дальше и дальше.... :o
А должно быть наоборот. ПЕЧАЛЬКА. :(

Re: Планувальник завдань

Додано: 21 березня 2013, 18:09
maza11
пан Томима писав:
maza11 писав:Как это не понимает? какой тогда смысл в бекапе на тот же компе где медок стоит?
А вот не понимает. Все задаются этим вопросом, но внятного ответа так и нет. Причем Бест-Звит(младший, и теперь уже покойный, брат Медка) работал с сетевыми дисками без малейших проблем, а Медок ругается.
maza11 писав:п.с. попробую как сетевой диск папку примонтировать, завтра отпишусь
На сетевую папку, смонтированную как диск, можно делать бекап, но только в ручном режиме, планировщик не захотел делать бекап, или я просто не знаю как его заставить.
я даже не знаю работает ли он вообще у меня .т.к с самого начала я задал сетевую папку и за пару месяцев не одного автобекапа так и не получил, завтра отпишусь

Re: Планувальник завдань

Додано: 22 березня 2013, 17:08
maza11
нет .так и не сработало задание ночного бекпа

Re: Планувальник завдань

Додано: 22 березня 2013, 17:14
пан Томима
maza11 писав:нет .так и не сработало задание ночного бекпа
Вот и у меня не вышло, потому пришлось свой велосипед сооружать, без бекапа стремно.

Re: Планувальник завдань

Додано: 25 березня 2013, 15:08
priup
Клиент поинтересовался "МЕДОК-Зарплатой"
Перешел в дему, посмотрел , попробовал, передумал.
Теперь при создании Р/К через Администрирование пишет - создавайте через планировщик. Если пробовать создать Р/К при выходе из МЕДКА Ошибка:
| Показать
Безымянный1.JPG
Безымянный1.JPG (66.72 Кіб) Переглянуто 5625 разів
Переустановка с подкидыванием FDB., переустановка с восстановлением с помощью BackupManager Результат тот же.
КАК БЫТЬ?

Re: Планувальник завдань

Додано: 25 березня 2013, 15:19
доктор
priup
Русским языком - запись с таким ключом уже существует.
Проще говоря (и надежнее) очистите каталог с РК или перекиньте все РК в другую папку, ошибка исчезнуть должна.

Re: Планувальник завдань

Додано: 25 березня 2013, 18:21
priup
СПАСИБО.
Завтра у клиента попробую. :)