|
Архивация баз 1С 8.2 с помощью .bat файла | ☑ | ||
---|---|---|---|---|
0
skupidom
18.10.16
✎
13:15
|
Есть sql серверная база 1С 8.2, написали скрипт в файле .bat:
chcp 1251 echo off setlocal set kat=C:\Program Files (x86) set ver=1cv82 set serv=server-1c set base=ArchBp1 "%kat%\%ver%\8.2.19.83\bin\1cv8.exe" CONFIG /S %serv%\%base% /DisableStartupMessages /DumpIB "C:\Arch1C\1c82_%date%.dt" /N Admin /P /OUT "C:\Arch1C\Logs\ backup.log" -NoTruncate echo %date% >> backup.log endlocal Цель - создание архивных копий базы 1С Результат скрипта: 1С запускается, доходит до момента аутентификации (выбора пользователя 1С) и пароля, далее пока сам не введешь пользователя+пароль не отрабатывает и резервную копию базы 1С не делает |
|||
1
Волшебник
модератор
18.10.16
✎
13:17
|
убери пробел после /N
|
|||
2
skupidom
18.10.16
✎
13:23
|
убрал, запустил скрипт, не заходит, хоть Admin без пароля
|
|||
3
Fish
18.10.16
✎
13:26
|
(0) Если база скульная, то и архивацию надо делать средствами скуля. Зачем батники, когда в скуле уже всё и так есть?
|
|||
4
ptiz
18.10.16
✎
13:28
|
Ну и традиционно: dt - не архив.
|
|||
5
MrStomak
18.10.16
✎
13:38
|
(0) Ага. Только тебе еще скрипт по отключению всех пользователей из базы нужно написать. И вообще - много проблем может быть, если по принципиальным соображениям не использовать для бэкапов механизмы СУБД.
|
|||
6
skupidom
18.10.16
✎
13:38
|
я понимаю, это временное решение, а как все таки .bat заставить работать корректно?
|
|||
7
MrStomak
18.10.16
✎
13:42
|
(6) Ну попробуй /P убрать
|
|||
8
Fish
18.10.16
✎
13:43
|
(6) Попробуй введи пароль. Может, там надо указать пустой пароль кавычками. Как-то никогда не практиковал учётку админа без пароля.
|
|||
9
cons74
18.10.16
✎
13:44
|
по bat есть специальная ветка на профильном форуме http://www.cyberforum.ru/cmd-bat/
|
|||
10
skupidom
18.10.16
✎
14:05
|
как обойти ввод пароля?
|
|||
11
mistеr
18.10.16
✎
14:09
|
(10) Да поставь уже Effector-Saver.
|
|||
12
newbling
18.10.16
✎
14:37
|
А база файловая или скульная?
|
|||
13
Fish
18.10.16
✎
14:38
|
(12) в (0) написано. В первой же фразе :)
|
|||
14
newbling
18.10.16
✎
14:49
|
(13) как-то упустил из виду. Тогда вообще некорректно так делать архивы. Надо средствами скуля. Например, я недавно делал в ветке pg_dump + текущая дата на windows server 2012
Там вообще больше про время, но я привёл полностью рабочий код батника для копирования базы средствами скуля. Есть, правда, момент с настройкой пользователей, но до этог оещё дойти надо. |
|||
15
pessimist
18.10.16
✎
17:32
|
(0) Проблему с паролем можно решить используя учётную запись с паролем и необходимыми правами.
Можно попробовать что-то типа "%path_to_1c%"\1cv8.exe DESIGNER /N %login% /p %password% оно у меня работает из скрипта, правда платформа 8.3 Если всё-таки делать бэкап в dt то нужно как минимум анализировать %ERRORLEVEL% в скрипте, перезапуская бэкап в случае неудачного завершения и писать в лог не только %date% но и %ERRORLEVEL% и по возможности полностью выдачу команды для последующего разбора полётов. Лучше пытаться выгнать пользователей и запретить регламентные задания. Костыль конечно, но шансов больше. При наличии выбора не нужно делать бэкап в dt. Даже если пытаться скриптом выгнать пользователей, запретить регламентные задания и анализировать %ERRORLEVEL% есть шанс что этот зоопарк не сработает. Бэкап средствами SQL сервера надёжнее. |
|||
16
Fedor-1971
18.10.16
✎
18:34
|
(0)
set serv=server-1c set base=ArchBp1 .... /S %serv%\%base% ... = /S server-1c\ArchBp1 - как бы \\ не хватает, что-бы получился корректный путь |
|||
17
Fedor-1971
18.10.16
✎
18:35
|
16+ в CMD запусти и посмотри как раскрываются твои строки, может ещё чего упустил
|
|||
18
Мойдодыр
18.10.16
✎
18:37
|
(15) Главное сделать. Прверять не обязательно )))
|
|||
19
Alexor
18.10.16
✎
20:40
|
У меня такой cmd файл архив делает дополнительно к скульному
set folder=%DATE% "C:\Program Files (x86)\1cv82\8.2.19.130\bin\1cv8.exe" config /sServSQL\Trade /nUser /pPassword /DumpIB "E:\ARHIV\trade_%folder%.dt" |
|||
20
NorthWind
18.10.16
✎
21:44
|
(0) Делал когда-то примерно так, правда, на VBS
Const kpgDumpPath = """C:\Program Files (x86)\1cv82\common\1cestart.exe""" Const kDatabaseServer = "srv-02\server" Const kDestPath = "E:\1C_ArcDT" Sub Main Set Cmd = CreateObject("WScript.Shell") FileName = kDestPath & "\arc" & Day (Date ()) BakFileName = FileName & ".dt" Set FS = CreateObject ("Scripting.FileSystemObject") if FS.FileExists (BakFileName) then FS.DeleteFile BakFileName end if rem делаем резервную копию базы StrCmd = kpgDumpPath &_ " CONFIG /S" + kDatabaseServer + " /DumpIB" & BakFileName & " /NЛогинДляСервиса /Psrvc1234" Cmd.Run StrCmd, 1, true End Sub '------------------------------------------------------------------- Main |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |