Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Архивация баз 1С 8.2 с помощью .bat файла

Архивация баз 1С 8.2 с помощью .bat файла
Я
   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
   skupidom
 
2 - 18.10.16 - 13:23
убрал, запустил скрипт, не заходит, хоть Admin без пароля
   Fish
 
3 - 18.10.16 - 13:26
(0) Если база скульная, то и архивацию надо делать средствами скуля. Зачем батники, когда в скуле уже всё и так есть?
   ptiz
 
4 - 18.10.16 - 13:28
Ну и традиционно: dt - не архив.
   MrStomak
 
5 - 18.10.16 - 13:38
(0) Ага. Только тебе еще скрипт по отключению всех пользователей из базы нужно написать. И вообще - много проблем может быть, если по принципиальным соображениям не использовать для бэкапов механизмы СУБД.
   skupidom
 
6 - 18.10.16 - 13:38
я понимаю, это временное решение, а как все таки .bat заставить работать корректно?
   MrStomak
 
7 - 18.10.16 - 13:42
(6) Ну попробуй /P убрать
   Fish
 
8 - 18.10.16 - 13:43
(6) Попробуй введи пароль. Может, там надо указать пустой пароль кавычками. Как-то никогда не практиковал учётку админа без пароля.
   cons74
 
9 - 18.10.16 - 13:44
по bat есть специальная ветка на профильном форуме http://www.cyberforum.ru/cmd-bat/
   skupidom
 
10 - 18.10.16 - 14:05
как обойти ввод пароля?
 
 Рекламное место пустует
   mistеr
 
11 - 18.10.16 - 14:09
(10) Да поставь уже Effector-Saver.
   newbling
 
12 - 18.10.16 - 14:37
А база файловая или скульная?
   Fish
 
13 - 18.10.16 - 14:38
(12) в (0) написано. В первой же фразе :)
   newbling
 
14 - 18.10.16 - 14:49
(13) как-то упустил из виду. Тогда вообще некорректно так делать архивы. Надо средствами скуля. Например, я недавно делал в ветке pg_dump + текущая дата на windows server 2012

Там вообще больше про время, но я привёл полностью рабочий код батника для копирования базы средствами скуля.

Есть, правда, момент с настройкой пользователей, но до этог оещё дойти надо.
   pessimist
 
15 - 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 сервера надёжнее.
   Fedor-1971
 
16 - 18.10.16 - 18:34
(0)
set serv=server-1c
set base=ArchBp1
.... /S %serv%\%base% ... = /S server-1c\ArchBp1 - как бы \\ не хватает, что-бы получился корректный путь
   Fedor-1971
 
17 - 18.10.16 - 18:35
16+ в CMD запусти и посмотри как раскрываются твои строки, может ещё чего упустил
   Мойдодыр
 
18 - 18.10.16 - 18:37
(15) Главное сделать. Прверять не обязательно )))
   Alexor
 
19 - 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"
   NorthWind
 
20 - 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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует