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

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_ ')
а то их сразу не видно, а строка формируется не правильно.


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