gifts2017

Простейший архиватор

Опубликовал German Derkachenko (SoftLeon) в раздел Администрирование - Архивирование (backup)

Простейший скрипт для архивирования баз данных
Простейший скрипт для архивирования баз данных.

В качестве исполняемой приведена команда xcopy с параметрами. Она выполняет копирование вне зависимости от того, все ли пользователи вышли из базы. Никто не мешает, при желании, использовать команду arj для создания архивов.

Текст скрипта:

Dim WshShell, Line, Param

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run("xcopy /E /I C:\1C\1cBase\*.* /Y C:\1C\Backup\Backup1C_"& Cstr(Year(Date)) & "_" & Right("0"+Cstr(Month(Date)),2) & "_" &  Right("0"+Cstr(Day(Date)),2))

Текст необходимо сохранить в файле с расширением vbs и подключить в планировщик. В результате выполнения скрипта в папке с архивом создаются каталоги с наименованием (в данном случае) Backup1C_2014_08_04... и т.д., по датам

В дальнейшем для чистки папки архивов используется следующий алгоритм: в течение месяца копии хранятся ежедневно, по истечении месяца оставляются только копии на 01 и 15 числа месяца. Для этого выполняется простейшая процедура в модуле 1С при начале работы системы.

// Считаем, что архивация началась 08.04.2014. Принцип сохранения архивов: первый месяц
// от текущей даты архивы хранятся ежедневно, потом - 01 и 15 числа каждого месяца

ОкончаниеПроверки = ДобавитьМесяц(ТекущаяДата(),-1);
ДатаПроверки = Дата(2014,04,08);
Пока ДатаПроверки<ОкончаниеПроверки Цикл
     
     ДатаПроверки = ДатаПроверки + 86400; 
     Если День(ДатаПроверки)=01 ИЛИ День(ДатаПроверки)=15 Тогда
         Продолжить;
     КонецЕсли;
     ИмяФайла = "C:\1C\Backup\Backup1C_"+
                        Формат(Год(ДатаПроверки),  "ЧЦ=4; ЧВН=; ЧГ=' '")+"_"+
                        Формат(Месяц(ДатаПроверки),"ЧЦ=2; ЧВН=; ЧГ=' '")+"_"+
                        Формат(День(ДатаПроверки), "ЧЦ=2; ЧВН=; ЧГ=' '")+".dt";

     ФайлАрхива = Новый Файл(ИмяФайлаArg);
     Если ФайлАрхива.Существует() Тогда
             Попытка
                   УдалитьФайлы(ИмяФайлаArg);
             Исключение
             КонецПопытки;
     КонецЕсли;

КонецЦикла;


См. также

Подписаться Добавить вознаграждение
Комментарии
1. Алексей Беспалов (FreeArcher) 06.08.14 02:12
А почему старые архивы чистятся из 1С? Ещё и изменения вносить надо. не проще ли ещё один скрипт сделать?