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

1С:Предприятие ::

Метки: администрирование

автоматическое создание резервной копии

Я
   Den
22.04.04 - 15:00
Может кому пригодится.
создаем текстовый файл ( например backup.bat) (содержимое файлика прилагается).
и добавляем в планировщик задание ( например выполнить в 23:00, чтобы в это время никто не работал).
и в указанной папке будут сохранятся копии базы вида :
22.04.2004_save.rar и 22.04.2004_unload.rar

rem ================содержимое backup.bat ==========================
REM  ! - ОБЯЗАТЕЛЬНО заполнить
REM  * - По необходимости
REM    ---------------------------
REM  !    Путь к файлу step.txt
    SET    step_PATH=C:\backup\step.txt
REM    ---------------------------
REM     удаляем старый step.txt
DEL     %step_PATH%
REM    ---------------------------
REM  !    куда сохранять ?
SET    DIST=d:\backup_
REM    ---------------------------
REM  *    Пользователь 1С
SET    USER=Admin
REM    ---------------------------
REM  *    Пароль пользователя 1С
SET    PASSWORD=advizer
REM    ---------------------------
REM  !    Путь к файлу 1cv7.exe
SET    EXE_PATH=C:\1Cv77\BIN\1cv7s.exe
REM    ---------------------------
REM  !    Путь к базе 1С
SET    xPATH=C:\1Cv77\complexSQL
REM    ---------------------------

REM    --------- параметры для 1С -----------------------
ECHO     [General]                >>%step_PATH%
ECHO     Quit=1                    >>%step_PATH%

REM  *  выполнить сохранение данных 1-Да 0-Нет
ECHO     SaveData=1                >>%step_PATH% 

REM  *  выполнить выгрузку данных 1-Да 0-Нет
ECHO     UnloadData=1                >>%step_PATH% 

ECHO     [SaveData]                >>%step_PATH% 
ECHO     SaveToFile=%DIST%\%DATE%_save.rar    >>%step_PATH% 
ECHO     [UnloadData]                >>%step_PATH%
ECHO     UnloadToFile=%DIST%\%DATE%_unload.rar    >>%step_PATH%
REM  *  сохранять инф.о пользователях 1-Да 0-нет
ECHO     IncludeUserDef=1            >>%step_PATH% 
REM    --------- параметры для 1С -----------------------


%EXE_PATH% CONFIG /D%xPATH% /N%USER% /P%PASSWORD% /@%step_PATH%
rem ==================================================================
 
 
   Черт
 
1 - 22.04.04 - 15:09
уже с полгода использую MyBackup, отличная прога,гибко настраивается, интерфейс русский, бесплатна.
   Den
2 - 23.04.04 - 05:36
MyBackup-прога, а енто коммандный файл выполняющий резервирование штатными средствами 1С, с русским интерфейсом :) и естественно бесплатно :) !
и кстати тоже гибко настраиваемый.
Единственный недостаток который я вижу это-то,что нужен монопольный доступ( чтобы никого небыло в базе).
   Дуч
3 - 23.04.04 - 09:24
Молодец конечно. Тока вот ExtForm ты не сохранишь так. ПОльзуйтесь WinRarом консольной версии.
   gr13
 
4 - 23.04.04 - 09:26
либо программой "Хранитель"
   valich
 
5 - 27.04.04 - 10:16
Den, правильно ли я понял, что так можно выгрузить серверную (SQL) версию конфигурации?
   Valery
 
6 - 27.04.04 - 11:05
3) верно winrarотличная штука
мой батник
"C:\Program Files\WinRAR\Rar.exe" a -agddmmyy -dh -x*.cdx  C:\1c\arh1c\prp Z:\np
работает отлично и главное в раздельном режиме.
   User63
7 - 28.04.04 - 17:53
Попробовал запустить bat-файл, но есть проблема с параметром %DATE% в имени архивного файла - получается в виде: Ср 28.04.2004_save.rar. И этот день недели нечитабельный при просмотре имени файла. Можно ли как-то исключить эти символы?
   valich
 
8 - 28.04.04 - 18:57
(7) Счас разбираюсь с этим на работе. Чуть позже сообщу результаты...
   GrayT
 
9 - 28.04.04 - 22:45
(7)А что за операционка? Откуда "Ср" взялось? У меня в ХР поумолчанию dd.mm.gg стояло. Когда я в региональных настройках изменил на gggg-MM-dd. Стало чуть по-приятней.
И еще в тему
http://www.sinor.ru/%7Efilez/hare/cfg_prm.html
http://www.mista.ru/articles1c/tips.htm
   Den
10 - 29.04.04 - 07:11
valich
  Да, именно с переходом на SQL версию и пришлось такое родить.Естественно, чтобы спать спокойно надо еще держать копию самой конфигурации ( она не так часто меняется ).
User63
   правильно GrayT говорит, в Региональных настройках посмотри формат даты.
 
  Рекламное место пустует
   User63
11 - 29.04.04 - 09:47
(9) MS Windows 2000. Когда просматриваю дату командой date, то у меня перед датой показывается еще день недели. Пн , Вт, Ср ... ну и так далее...
 Спасибо за совет, сейчас покопаюсь в настройках...
   User63
12 - 29.04.04 - 15:59
В дополнение к предыдущему: Что-то не нашел я у себя пункт Региональные настройки. Есть у меня Язык и стандарты в ПанелиУправления.Там смог изменить только символ-разделитель в дате.А вот чтоб день недели не высвечивался... Не получается никак. Может кто знает?
   valich
 
13 - 01.05.04 - 07:33
(12) Точно, пишет две первые буквы имени дня на русском языке (у нас на работе Windows 2000 Advanced Server), но в какой-то странной кодировке, потом в архив не попадешь :-( Все наши попытки перенастроить были безуспешны...
Мы тут с нашим админом поизгалялись немного, результатом чего стал скрипт. Он еще пока не обкатанный, опробовали на локальной машине, на демо-базе. Но, в общем сетевые пути поддерживаются...
Я не очень силен в JScript, 1С да и в WSH тоже... В общем, просьба сильно не пинать ;-) Буду очень рад услышать комментарии, пожелания, критику и проч.

P.S.: Дэну отдельное спасибо за идею ;-)

P.P.S.: Чуть не забыл, скрипт выполняется на операционках с поддержкой технологии WSH (Windows Script Hosting). По-моему на 98 надо отдельно что-то качать... И еще момент, Norton Antivirus впервые с ним (скриптом) сталкиваясь, запрашивает действие, и по-умолчанию предлагает заблокировать выполнение. Там надо выбрать - Autorize (по-моему). Но это только первый раз, или после изменения. На других антивирусниках не испытывалось, но вроде как Касперский пропускает...
   valich
 
14 - 01.05.04 - 07:36
//**********************************************************************//

//                                                                     //

//        Универсальный скрипт резервного копирования для 1С           //

//                          (backup.js)                                //

//        Язык реализации - JScript с применением технологии           //

//        Windows Script Host. Скрипт позволяет автоматически          //

//        выполнять 1С (v7.7) в пакетном режиме для реализации         //

//        задач выгрузки данных и создания резервных копий.            //

//        Для создания резервной копии в главном каталоге должен       //

//        лежать файл mask.lst для хранения списка масок файлов.       //

//                                                                     //

//*********************************************************************//


// Путь до главного каталога

var MainPath = "d:\\backup";

// Имя файла настройки сеанса

var INIFile = "backup.ini";

// Наработка имени очередного каталога

var ToDay = new Date();
var cDay = ((ToDay.getDate()) > 9) ? (ToDay.getDate() + 1) : "0" +
              + (ToDay.getDate());
var cMonth = ((ToDay.getMonth() + 1) > 9) ? (ToDay.getMonth() + 1) : "0" +
              + (ToDay.getMonth() + 1);
var curDate = cDay + "." + cMonth + "." + ToDay.getFullYear();

// Каталог для текущей даты

var currentPath = MainPath + "\\" + "Mnfctr_" + curDate;

// Логин и пароль для 1С

var User = "admin";
var Passwd = "god";

// Путь до запускаемого файла 1С

var ExePath = "d:\\Programs\\1Cv77\\BIN\\1cv7s.exe";

// Путь до рабочей базы обрабатываемой конфигурации

var BasePath = "d:\\Programs\\1Cv77\\MnfcDemo";

// Имя файла журнала проводимых операций

var LogFile = "backup.log";

// Коммандная строка для запуска 1С в пакетном режиме

var commandLine = "\"" + ExePath + "\"" + " CONFIG /D" + BasePath + " /N" + User;
commandLine = commandLine + " /P" + Passwd + " /\@" + MainPath + "\\" + INIFile;

// Чтение из файла масок копируемых файлов

var mfo = new ActiveXObject("Scripting.FileSystemObject"); 
if (mfo.FileExists(MainPath + "\\mask.lst")){
    Mask = mfo.OpenTextFile(MainPath + "\\mask.lst");
    Masks = "FileList=" + Mask.ReadAll();
    Mask.Close();
} else {
    Masks = "";
}

// Создаем каталог с именем по текущей дате

var fso = new ActiveXObject("Scripting.FileSystemObject");
if (!fso.FolderExists(currentPath)){
    fso.CreateFolder(currentPath);
}
// Копируем журнал

if (fso.FileExists(BasePath + "\\" + "syslog" + "\\" + "1cv7.mlg")){
    sl = fso.GetFile(BasePath + "\\" + "syslog" + "\\" + "1cv7.mlg");
    sl.Copy(currentPath + "\\" + "1cv7.mlg");
}

// Удаляем старый файл настройки сеанса

if (fso.FileExists(MainPath + "\\" + INIFile)){
    tmpfile = fso.GetFile(MainPath + "\\" + INIFile);
    tmpfile.Delete();
}
// Запись файла настройки сеанса

var Conf = fso.CreateTextFile(MainPath + "\\" + INIFile);
Conf.write("\[General\]\n"); 
Conf.write("Quit=1\n");
Conf.write("Output\=" + currentPath + "\\" + LogFile + "\n");
Conf.write("SaveData\=1\nUnloadData\=1\n");
Conf.write("\[UnloadData\]\n");
Conf.write("UnloadToFile\=\"" + currentPath + "\\" + "unload.zip\"\n");
Conf.write("IncludeUserDef=1\n");
Conf.write("\[saveData\]\n");
Conf.write("SaveToFile\=\"" + currentPath + "\\" + "save.zip\"\n");
Conf.write(Masks + "\n");
Conf.Close();

// Запускаем 1С

run1c = new ActiveXObject("WScript.Shell");
run1c.Run(commandLine);

//**********************************************************************//

//                                                                     //

//        Комментарий: скрипт написан для резервирования базы          //

//        SQL-версии. Сначала копируется файл журнала конфгурации,     //

//        затем идет выгрузка данных и наконец сохранение служебных    //

//        файлов конфигурации.                                         //

//                                                                     //

//**********************************************************************//
   valich
 
15 - 01.05.04 - 07:39
Да, немного некрасиво получилось, но в блокноте все будет нормально...
И чуть не забыл. У нас на работе две конфигурации - Производство(SQL) и Зарплата(dbf).
В принципе с двумя такими скриптами очень удобно... Выполняем по времени ночью...
   Den
16 - 01.05.04 - 19:45
... для тех кому не удается избавится от (Когда просматриваю дату командой date, то у меня перед датой показывается еще день недели. Пн , Вт, Ср ... ну и так далее), нужно заключить в ковычки
пример:
SaveToFile="%DIST%\%DATE%_save.rar"    
тогда день недели просто будет в имени файла
d:\backup_\Сб 01.05.2004_save.rar
у меня заработало...а у Вас !?   :)
   Den
17 - 01.05.04 - 20:14
oooops ! :(
попробовал на другой машине (тоже win200), 1С из (Сб 01.05.2004_save.rar) делает (‘Ў 01.05.2004_save.rar ). странно..
буду разбиратся дальше.
и ещё !!!!! при задании переменных типа
DIST=d:\backup_ 
нужно быть внимательнее, чтобы в конце небыло пробелов
(т.е. 'DIST=d:\backup_' и 'DIST=d:\backup_ ')
а то их сразу не видно, а строка формируется не правильно.


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