Резервирование базы - Rar-архивирование и создание вторичной копии


Скрипт создает rar-архив, закрытый паролем, а также - копирует базу на второй сервер.
Делается проверка и восстановление базы.
Есть возможность выключения и/или перезагрузки копьютеров.

Резервирование базы - Rar-архивирование и создание вторичной копии

Скрипт создает rar-архив, закрытый паролем, а также - копирует базу на второй сервер.
Делается проверка и восстановление базы.
Есть (закоментирована) возможность заливки на FTP и выключения-перезагрузки копьютеров. 

Именно RAR и никакой другой: Поддрежка файлов больше 2Гб, большАя степень сжатия чем zip, мощнейшая защита паролем и т.п..


Второй сервер исспольльзуется теми, кому закрыт доступ в оперативную базу на основном сервере. Это, например, различные менеджеры и торговые представители.

Единственное ограничение, с которым им приходиться сталкиваться, но оно не столь критично именно для них - в базе нет документов за сегодняшний день (так как копия делается ночью).

Скрипты со всеми нужными файла лежат в архиве  

Созданный bat-файл запускается через "Назначенные задания". Для того что-бы у Вас н утро было что почитать, все пишется в log-файл. Для его создания просто перенаправляем вывод всех сообщений с экрана в нужный нам файл с помощью ператора >. Это показано на рисунке. 

Пояснения к главным моментам:

Вывод даты и времени
date
/t
time /t
Установка основных переменных (для удобства последющего их исспользования)
set base_name=NewConfig - Имя каталога, где база лежит... кхм.. хранится, лежать ей не нужно Wink
set base_path=d:\1C_Bases\ - каталог БД
set backup_path=d:\___APPSERVER\ -  каталог для хранения копий, можно и в сеть бросать
set second_path=\\Office-02\1c_Base\ -  каталог для вторичной базы
На всякий случай удаляем и снова создаем пустой каталог. 
Именно сюда база вначале копируется, а потом архивируется

rmdir %backup_path%tmp_backup_tnx /s /q
mkdir %backup_path%tmp_backup_tnx\%base_name%

Этот блок добавлен недавно, он для 7.7. Для 8-ки наверное по-другому будет
del /q %base_path%%base_name\*.cdx -  убиваем все индексы. Добавлено пару дней тому назад. 
"C:\Program Files\1Cv77\BIN\1cv7.exe" CONFIG /M /D%base_path%%base_name% /NAdmin /Pq7a4z1 /@"d:\___APPSERVER\packet\1c_nightwork.param"
А вот это запускается конфигуратор 1С под пользователем с админ. правами и делается "Восстановление базы".
Параметры восстановления лежат в файле "1c_nightwork.param" в той же папке где и сам батник.

echo Создаем копию для основного архива
База копируется в отдельную папку, а потом уже над ней производятся все действия. Файлы, указанные в файле NoCopy.lst не копируются.
xcopy %base_path%%base_name% %backup_path%tmp_backup_tnx\%base_name% /s /e /h /EXCLUDE:NoCopy.lst
date /t
time /t

echo Создаем основной архив
Параметры: (кому лень читать "rar /?")
- удаление файлов после архивации
- rr5p - 5% на восстановление
- id[c,d,p,q] Disable messages
- ieml[addr] восспользовавшись этим параметром видимо можно архив закинуть на мыло. На проверял.
- m5 ставим максимальный уровень сжатия
- можете поиграть с параметрами ер1, ер2 и ер3 - как Вам будет удобнее
ep1 Exclude base directory from names
ep2 Expand paths to full
ep3 Expand paths to full including the drive letter
- ag[format] имя архива содержит дату, по формату ддммггччмм

rar a -df -rr5p -ibck -hpq7a4z1w8s5x2e9d6c3 -m5 -ep1 -ag_ddmmyyhhmm %backup_path%tnx1c %backup_path%tmp_backup_tnx\%base_name%
date /t
time /t

echo заливаем на секондари, для отчетчиков
rmdir %second_path%%base_name% /s /q
xcopy %backup_path%tmp_backup_tnx\%base_name% %second_path%%base_name%\ /s /e /h /z /y

Можно выключить второй комп после заливки на него копии.
rem - если не знаете этой команды, тогда лучше делайте все вручную, пока не разберетесь с командами доса
rem shutdown /s /t 600 /m \\office-02 /c "Отмена выключения - Пуск-Выполнить-[cmd]-[shutdown -a]"
date /t
time /t

Когда-то пробовал заливать на ftp. Может кому-то пригодиться (как отправная точка)
rem ftp -v -i -s:ftp.txt ftpupload1.depositfiles.com

rem del /q %backup_path%tnx1c_ftp.rar

Можно и сервак потушить. просто убираем rem
rem shutdown /s /t 60 /c "Отключение для зарядки батарей"
 

Файлы обработки:

-