суббота, 29 июля 2017 г.

Автоматическая архивация данных 1C c помощью WinRAR

Иногда случаются казусы типа: БД «рухнула», кто-то что-то совершенно «случайно» грохнул, или вообще HDD скончался…. Первая мысль: сейчас бы архивчик…. А его частенько нет, ибо любим мы на русский «авось» полагаться. Предлагаю универсальный и безотказный способ автоматической архивации, не требующий ничего потустороннего, только известный всем архиватор WinRAR. Потратите 5-10 минут на настройку, и Вы спокойны.

Общее описание
     Метод основан на сочетании возможностей Windows (назначенные задания) и архиватора WinRAR (управление из командной строки), WinRAR потребуется «необрезанный».
Настройки «Назначенного Задания» позволят установить:
  • -Каким образом будет запускаться задание: при включении компьютера, по графику, вручную.
  • -Из какого режима работы компьютера будет запускаться задание: из рабочего или спящего.
  • -Дополнительные настройки для ноутов и прочего антиквариата ПК.
     Настройки WinRAR позволят: указать адрес архива, каталоги/файлы/списки для архивации. Уточнить состав архива по принципам: расширения файлов, время создания, наличие/отсутствие в архиве, «освежить» архив (обновить только файлы, которые в архиве есть), добавить файлы, вновь появившиеся по архивируемому адресу, удалить те, которые «пропали», впрочем, о возможностях WinRAR позже на примерах.
ВНИМАНИЕ! Если в настройках Winrar не указаны каталоги/файлы/списки для архивации, а указан только адрес архива: WinRAR займётся архивацией всей системы, и всего того, что доступно системе в данный момент. Это может привести к «нехорошему».
Проверено для: Windows 2000/2000 Server/XP/Server 2003/Windows 7/Server 2008.  

Настройки на примерах
     Описание по принципу: цель – способ решения, отклонения не описываю, только краткая справка в скобках. Уверен, на основе примеров Вы сможете составить именно Ваше задание. Итак:
1
ЦЕЛЬ: 1 раз в неделю архивировать все БД 1с, лежащие в одном каталоге. Задание должно добавлять в архив новое, удалять отсутствующее, статичные (неизменённые) файлы не трогать: обрабатываться будут только файлы: вновь созданные, изменённые,  удалённые. На «автоматике» это будет выглядеть так:
Создаём в Windows новое "назначенное задание". Запускается мастер. Предлагает выбрать программу. Естественно, выбираем WinRAR. Пишем имя Задания, когда ему выполняться. Пошагово заполняем..., включите «Установить дополнительные…».
Что? Пишет, что работать не будет? Поэтому: открываем наше задание (входим в Панель Управления - Назначенные Задания), включаем флаг «Выполнять только при выполненном входе в систему», переходим на закладку «Параметры» и включаем «Разбудить комп…».  Это надо для того, чтобы компьютер, оставленный в спящем режиме, «проснулся» для выполнения задания. Для запуска в назначенное время  "разрешаем" компу использовать Спящий режим. Если по графику задание должно запуститься, к примеру, ночью, вечером перед этим комп не выключаем, а переводим в спящий режим. В нужный момент комп проснётся, выполнит, а  может и выключиться после завершения, такая возможность есть в настройках WinRAR. 
Итак, настраиваем WinRAR. Открываем задание, в первой строке «Выполнить» видим примерно:
C:\PROGRA~1\WinRAR\WinRAR.exe
Это полный путь запускаемой программы. Слово WinRAR может заменить эту строку, т.к. для Windows это УЖЕ команда.
WinRAR – заменитель.
В этом состоянии наше задание работоспособно, но оно только запустит программуWinRAR. Теперь настройки.
Настройки пишутся в параметре «Выполнить» после уже имеющегося (C:\PROGRA~1\WinRAR\WinRAR.exe) через пробел.
Общий синтаксис командной строки:
WinRAR    –  –        //в этом примере «
Что требуется для нашего задания:
WinRAR u -as F:\Arhiv\Data_1C.rar D:\Data_1C //выделил цветом сегменты строки. По цвету и комментарии.
u – команда. Обновляет файлы в архиве, обрабатывает только изменённые и добавляет новые.
-as  –  ключ. Удаляет из архива файлы, отсутствующие в источнике.
Таким образом, комбинация команды и ключа синхронизирует архив с исходными данными.
F:\Arhiv\Data_1C.rar – это наш архив с адресом. Архив, хоть пустой, уже должен быть по указанному адресу.
D:\Data_1C – архивируемые данные. В данном случае – каталог.
ИТАК, порядок: команда – ключ/ключи – архив – файлы/@файл-список. Разделитель «_» (пробел).
В дальнейшем повторяться не буду. Только комментировать отличия.

2
ЦЕЛЬ: архивировать ценные данные (документы, избранное и пр.) ежедневно. Чтобы процесс не отвлекал, включает и выключает комп на автомате, добавлены 2 новых ключа. Отличие от 1-го задания в том, что данные находятся в разных каталогах. Придётся использовать файл-список. Файл-список – это текстовый файл, в котором:
-первая запись начинается с первого символа первой строки
-последующие записи начинаются с новой строки
-ни каких лишних символов, комментариев и пр.
Если указываете вместо адреса данных файл-список, учтите, в этом случае параметр (адрес файла) начинается с символа @ (собака).
В файл-список можно включать файлы, каталоги, выбрать файлы по расширению и пр.
Нам потребуется строка :
WinRAR u -as dh  IOFF F:\Arhiv\Doc.rar @C:\SpisokArh.txt
-dh – позволяет архивировать открытые в данный момент файлы. Включил потому, что частенько компьютер отправляю в «спячку» с открытыми документами и программами (кроме 1с). При этом самое плохое – в архив пойдёт и несохранённая копия файла. А это не критично, т.к. при открытии такого архива компьютер «вспомнит» о несохранённых версиях. Что с ними делать – Ваше дело.
-IOFF – выключение компьютера после завершения архивации. Т.о., компьютер это делает совершенно самостоятельно. Одно НО: именно ВЫКЛЮЧЕНИЕ, а не переход в спящий режим. В связи с этим рассчитывайте размещение заданий во времени, если у Вас несколько заданий на ночь, используйте этот ключ только на последнем задании, да так, что-бы этот ключ не "тормознул" другие задания, которые не успели завершиться.
@C:\SpisokArh.txt – файл-список. Вот его текст:
D:\Doc
C:\Documents and Settings\Admin\Избранное
C:\Documents and Settings\Admin\Рабочий стол\Закачки
Не буду описывать все вариации, которые использую, думаю, у Вас фантазии на большее хватит, я лишь намекнул. Читайте справку WinRAR, там полные списки ключей и команд, рекомендации по использованию.

Дополнительно
  • WinRAR способен архивировать открытые в данный момент файлы (читай: открытые БД 1С), но! Если архивировать БД «на ходу» может получиться такое… 1с-ка во время архивации БД может изменить файлы, в архиве БД получится, что файлы *.dbf не согласованы. Отсюда правило:  на момент архивации все архивируемые данные (1C) должны быть закрыты. Для прочих (MS Office) не актуально.
  • Новый архив автоматически не создаётся! Необходимо указывать уже имеющийся, хоть пустой.
  • При заполнении нового архива процедура может затянуться на…, потом всё будет работать в соответствии с заданными параметрами.

P.S.: Извиняюсь за скудность примеров: описал только самое наглядное. Дальше – дело Ваших потребностей и фантазии. Читайте справку WinRAR, раздел "Режим командной строки".

0 коммент.:

Отправить комментарий