
Программа backup.exe по своей функциональности похожа на скрипт (сценарий), реализованный на языке С++, и предназначенный для запуска внешней command-line программы архивации данных. Она может быть использована совместно с ЛЮБЫМ архиватором, поддерживающим интерфейс командной строки. На мой взгляд, для большинства пользователей подойдет архиватор JAR - новый программный продукт фирмы ARJ Software (хорошо известной своим архиватором ARJ). После того, как данные будут заархивированы во временную директорию, они копируются данной программой в неограниченное количество мест (на любые носители или сетевые диски). Программа не поддерживает копирование на магнитную ленту и на диски CD-ROM.
Синтаксис:
backup config_file
config_file - файл конфигурации
Логика работы программы задается файлом конфигурации. Каждая задача резервного копирования требует отдельного файла конфигурации. Вывод программы может быть перенаправлен в файл отчета.
Пример файла конфигурации (входит в zip-файл с программой):
;Конфигурационный файл
;для программы backup.exe
;
;Исходная директория для копирования
;(директория, содержащая файлы,
;которые вы хотите скопировать)
[Source]
c:\COMPUTERS
;Пути для копирования (директории, которые
;будет содержать поддиректории с данными
[Dest]
g:\bkp_sec\comp_bkp
\\BKP_SERVER\Backup\comp_bkp
;Количество копий для каждого пути
[Copies]
5
1
;Имена файлов отчета для каждого пути
;(это копии файла, в который перенаправляется
;вывод программы-архиватора)
[Log_file]
comp.log
comp.log
;Путь к временной директории (здесь будет
;создан файл архивной копии, который впоследствии
;будет скопирован в поддиректории директорий, указанных
;в разделе [Dest]. Если при копировании по этим путям
;возникнет ошибка, файл архива и файл, в который был
;перенаправлен вывод программы-архиватора, останутся
;здесь).
[TempDir]
C:\Temp\
;Путь к программе-архиватору (здесь должен находиться
;архиватор и его файл настроек, если таковой имеется).
[PathToArchiver]
C:\Jar\
;Имя файла архива
[ArchiveName]
comp.j
;Команда архиватору (переменные в <скобках>
;будут заменены на соответствующие имена файлов
[Command]
JAR32 a -r -m4 <dest> <source>
;Метка конца данных (оставлять строку после
;метки ОБЯЗАТЕЛЬНО!!!)
[End]
End of cfg file
Последовательность работы програмы:
1.Считывается файл конфигурации и проверяется корректность
данных в нем.
Если на данном этапе работы происходит ошибка, программа прерывает
свое выполнение с диагностикой:
Error reading configuration.
В противном случае в стандартный вывод идет строка:
Configuration OK.
2.Запускается внешняя программа-архиватор, которая архивирует данные во временную директорию (под Windows NT архиватор запускается с приоритетом "high").
3.Анализируется структура директорий, указанных в качестве путей для
копирования. Удаляется содержимое директории, название которой соответствует
требуемому количеству копий. Остальные директории переименовываются.
Создается директория ...\1\, в которую помещаются файл архива и log-файл, в
который был перенаправлен вывод программы-архиватора при создании архива.
Если на данном этапе работы происходит ошибка, программа прерывает
свое выполнение с диагностикой:
Error in ForceBackup.
Получить более детальную информацию можно путем анализа файла отчета,
сохранившегося во временной директории, и путем анализа дат создания файлов
содержащихся в поддиректориях директорий, указанных в качестве путей для
копирования. При отсутствии ошибок, в стандартный вывод идет строка:
ForceBackup OK.
4.Если действия п.3 были успешными, удаляются файлы из временной директории.
Результаты работы программы:
В результате не менее 5 запусков программы backup.exe с данным файлом конфигурации будет создана следующая структура директорий:
g:\
\\BKP_SERVER\Backup\
Каждая из пронумерованных директорий содержит файлы comp.j и comp.log, являющиеся,
соответственно, архивом и log-файлом.
После последующих запусков программы с данным файлом конфигурации структура
буде обновляться таким образом, чтобы поддиректория ...\1\ содержала файлы,
полученные в результате последнего запуска программы.
Рекомендации по использованию программы:
Рекомендуется создать файлы конфигурации для всех директорий, которые Вы хотите копировать, и создать файл сценария (bat-файл), в котором программа backup.exe будет запускаться последовательно с каждым конфигурационным файлом в качестве аргумента. Полезно также направить вывод программы в файл, просмотрев который можно убедиться в том, что копирование прошло удачно.
Пример bat-файла, реализующего процедуру ежедневного резервного копирования:
set bkp_p=%windir%\Backup\
set rep_p=D:\Reports\Daily\
%bkp_p%backup.exe %bkp_p%comp.cfg >%rep_p%d_bkp.rep
%bkp_p%backup.exe %bkp_p%fin.cfg >>%rep_p%d_bkp.rep
%bkp_p%backup.exe %bkp_p%proj.cfg >>%rep_p%d_bkp.rep
В данном примере программа backup.exe и соответствующие файлы конфигурации находятся в поддиректории Backup\ директории, в которую установлена Windows.
Поскольку большинство архиваторов не может копировать файлы, которые в момент запуска архиватора открыты пользователями, рекомендуется перед началом копирования остановить сервис Server. Для успешного резервного копирования реестра Windows NT необходимо использовать программу regback.exe из комплекта Windows NT Resource Kit. Файлы, которые она записывает, можно копировать обычным способом (в том числе и с использованием любого архиватора и программы backup.exe).
Программа разрабатывалась для работы под Windows NT, поэтому я не могу гарантировать успешной работы ее под Windows 95/98 (хотя ее работоспособность проверялась и под Windows 95).