Архивация сервера штатными средствами

Acronis конечно же хорош, но весьма дорог и в случае нелегального его использования это может обернуться неприятными последствиями. Буду пользоваться штатными средствами архивации, а именно Системой архивации данных Windows Server.

422

Графическая среда данной системы предлагает создать план архивации с периодичностью каждый день - без вариантов. Мне так часто не нужно, поэтому буду пользоваться утилитой командной строки wbadmin, которая появляется после установки компоненты. Утилита будет запускаться в скрипте PowerShell через штатный планировщик Windows. Для начала нужно разрешить использование "ненадежных скриптов PS", для этого среду нужно запустить от имени администратора и ввести команду:

Set-ExecutionPolicy remotesigned

Первая часть скрипта создает папку для архивации с текущей датой в имени и удаляет старые архивации:

$date = get-date
$foldername = $date.toshortdatestring()
foreach ($list in get-childitem L:\ARJ_SYS) {
$obso = $date - $list.LastWriteTime
if ($obso.days -gt X) { remove-item L:\ARJ_SYS\$list -force -recurse }
}
new-item L:\ARJ_SYS -name $foldername -type directory -force

где L:\ARJ_SYS - папка архивации, а X - количество дней хранения архивов.

Вторая часть вызывает wbadmin (описание на MS и неплохая статья на Озоне (//www.oszone.net/12541/ )):

wbadmin.exe start backup -backupTarget:L:\ARJ_SYS\$foldername\
-allcritical -vssFull -quiet

Важное замечание: Команда должна быть в одну строку.

Все это помещается в блокнот, а расширение файла меняется с .txt на .ps1. Скрипт - пусть к примеру называется backup.ps1, надо запускать из папки, где он лежит, как .\backup.ps1. Выполнив текущие шаги и запустив скрипт, получил ошибку "...указанное расположение не найдено..."

423

хочет именно сетевую папку или диск, ладно, переделываю:

wbadmin.exe startbackup -backupTarget:\\localhost\L$\ARJ_SYS\$foldername\
-allcritical -vssFull -quiet

скрипт запустился и отработал:

424

час и 65GB в архиве. Осталось добавить задание, выполняемое раз в месяц. При такой частоте выполнения задания в папке архивов всегда будет два архива. После создания, задание нужно обязательно проверить на работоспособность. Указание рабочей папки решает многие проблемы при запуске скриптов как задания.

425

Нужно отметить чекбокс Выполнить с наивысшими правами, это тоже самое что и Запуск от имени Администратора.

Так что ещё нужно отметить - утилита архивирует без сжатия, тогда как Acronis жмет в 1,2 раза по умолчанию, да и архивирует быстрее - это ожидаемо и нормально.

Для архива папки профилей пользователей, они у меня хранятся на другом диске, отдельно от системы - использую WinRar с ключом -u. При этом архив создается только один раз, а потом идет дозапись новых/измененных файлов в существующий архив. Сначала жал всю папку целиком и из 100GB папки профилей получался 80GB архив (Acronis жмет до 59GB). Дозапись при этом не сильно быстрее создания полного архива, но все же быстрее. Архив громоздкий и работать с ним неудобно. Затем стал жать каждый профиль отдельно.

foreach ($list in get-childitem D:\Users) {
L:\Scripts\rar.exe a -u -as -r L:\ARJ_USERS\$list.rar D:\Users\$list\*.* 
}

На этом про бекап физичеcкой машины все.

Leave a Comment

Scroll to Top