Резервное копирование и восстановление в Windows

Для выполнения регулярного резервного копирования программы воспользуемся бесплатной программой 7-zip.

Установка тривиальна, поэтому нет необходимости подробного описания данного процесса. Далее предполагается, что программа-архиватор установлена в каталог C:\Program Files\7-Zip\.

Bat-скрипт для резервного копирования

Создадим командный файл backup.bat для остановки, запуска служб apache и postgresql, а также архивации каталога с программой.

@echo off
@echo off

set source="C:\sc"
set destination="C:\backups"
set DB_PATH=%source%\postgresql

set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6,4%
set curdate=%dd%-%mm%-%yyyy%

set backup_file="%destination%\backup_%curdate%.zip"


Net stop djangostackApache
%DB_PATH%\bin\pg_ctl.exe stop --pgdata=%DB_PATH%\data

"C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx5 -r0 %backup_file% %source%

Net start djangostackPostgreSQL
Net start djangostackApache

Переменная source определяет каталог источник для бэкапа. Переменная destination определяет каталог места назначения zip-архивов с бэкапом.

Настройка бэкапа по расписанию

Автоматический запуск скрипта будем производить в программе Планировщик заданий. Планировщик заданий находится: Панель управления Windows -> Администрирование -> Планировщик заданий.

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

Переходим на вкладку триггеры – создаем новый триггер с расписанием.

Переходим на вкладку Действия и создаем новое действие "Запуск программы", указав путь к backup.bat.

Жмем ОК – все бэкап программы по расписанию настроен.

Восстановление программы из резервной копии

Останавливаем службы выполнив в командной строке с правами Администратора.

Net stop djangostackApache

set DB_PATH=c:\severcart\postgresql

%DB_PATH%\bin\pg_ctl.exe stop --pgdata=%DB_PATH%\data

Далее полностью заменяем каталог C:\sc\ из самого свежего файла резервной копии.

Запускаем службы, выполнив

Net start djangostackPostgreSQL
Net start djangostackApache
.