дата последнего изменения: 30.07.2009
метки: резервное копирование, VBScript, Windows
Для автоматизации резервного копирования данных архиватором 7-Zip предлагается использовать сценарий VBScript. Способ подходит для архивирования пользовательских данных небольшого и среднего объема — каталога с рабочими документами, профиля браузера или почтового клиента.
ntbackup.Для удобства настройки резервного копирования, а также для простоты восстановления принято правило — каждому ресурсу (исходному каталогу) соответствует один каталог с архивами и одно задание архивации. Скрипт располагается в том же каталоге, где и создаваемые им архивы. Удобство состоит в том, что для перенастройки (перемещения на другой сервер, удаления) одного задания архивации достаточно изменить (переместить, удалить) только один соответствующий ему скрипт и содержащий его каталог.
Простого «зеркалирования» данных не всегда достаточно. Ошибка в резервируемых данных может быть обнаружена не сразу, а через несколько дней, когда «вчерашняя» копия уже бесполезна. Вывод — надо делать и хранить ежедневные архивы. В то же время, необходимо периодически удалять совсем старые архивы, иначе они заполнят весь диск и свободного места не останется.
После создания нового архива предлагаемый скрипт отбирает заданное количество наиболее свежих архивов, а остальные удаляет. Количество архивов в истории задается в самом скрипте:
Const HISTORY = 5 'количество архивов в истории
Скрипт для ежедневного резервного копирования каталога с историей за несколько дней, формат VBS, упакован ZIP: backup_history.zip
Установка:
7z.exe и поместить рядом со скриптом.Настройки хранятся в самом скрипте, в виде констант. Обязательно нужно указать архивируемый ресурс — значение константы SRC. В качестве подсказки предложено несколько вариантов, только один из них нужно оставить «активным», а все остальные — закомментировать, т.е. поставить кавычку в начале строки:
'что копировать? Const SRC = """D:\Work\*""" 'каталог и маска для резервирования 'Const SRC = """%AppData%\Opera\Opera\*""" 'допускаются переменные окружения 'Const SRC = "@files.txt" 'взять список каталогов из текстового файла
Скрипт не проверяет наличие архивируемого ресурса или файла со списком каталогов, поэтому если источник указан неверно, архив все равно будет создан, хотя и будет выдано предупреждение.
Желательно указать подходящий префикс имени архива (условное название архивируемого ресурса) так, чтобы было понятно его назначение:
'куда копировать? Const PREFIX = "backup" 'префикс имени архива, условное название архивируемого ресурса
Можно отключить вывод сообщений:
'выводить сообщения? 'Const NOTIFY = True 'True = выдавать сообщения Const NOTIFY = False 'False = без сообщений
Для помещения в один архив данных из нескольких каталогов необходимо их список поместить в текстовый файл files.txt рядом со скриптом, а в настройках скрипта указать имя этого файла через знак @ (это функция самого архиватора 7-Zip):
Const SRC = "@files.txt" 'взять список каталогов из текстового файла
Например, для копирования настроек программ Opera, Mozilla Thunderbird, Mozilla Firefox и GnuPG следует составить примерно такой список:
"C:\Documents and Settings\pavel\Application Data\Opera" "C:\Documents and Settings\pavel\Application Data\Thunderbird" "C:\Documents and Settings\pavel\Application Data\Mozilla\Firefox" "C:\Documents and Settings\pavel\Application Data\gnupg"
К сожалению, 7-Zip не понимает переменных окружения в списке и написать %UserProfile% вместо C:\Documents and Settings\pavel не получится.
Рядом со скриптом находится текстовый файл exclude.txt, в котором можно указать подкаталоги, которые не должны попасть в архив, по одному в каждой строке. Этот файл обрабатывается архиватором 7-Zip благодаря опции командной строки -x@exclude.txt.
Например, при архивации профиля Mozilla Thunderbird можно исключить почтовую папку «Temp» (путь указан относительно корня профиля):
"Mail\Local Folders\Temp"
Чтобы не смущать пользователя непонятными надписями, в скрипте отключен вывод сообщений об ошибках во время выполнения. Но если что-то не работает, на время отладки эти сообщения лучше включить:
'не завершать скрипт аварийно 'On Error Resume Next
При использовании материалов сайта не забудьте добавить ссылку на первоисточник!
Есть замечания, предложения или пожелания? → Сообщите автору!
Павел Железнов
ИТ-специалист
Метки:
1С:Предприятие DOS J2ME JavaScript Thunderbird VBScript WMI Web-программирование Windows восстановление достижения железо загрузка инвентаризация разное резервное копирование
Страницы: