locked
Автоматизация скриптов wbadmin RRS feed

  • Вопрос

  • Добрый день, коллеги.

    Есть у меня скрипт, который делает резервную копию баз данных на файловую шару:

    wbadmin start backup -backupTarget:\\MAIL\MBDBBackup -include:"E:\*" -vssFull

    При запуске этого скрипта он запрашивает согласия пользователя Yes/No. Какой нужно указать ключ в скрипте, чтобы автоматически давался ответ Yes ?

    Как можно задать счетчик для этого скрипта? Например после каждого 10-го запуска перезаписывать архив, чтобы избежать переполнения папки для бекапов.

     

    6 марта 2011 г. 11:16

Ответы

  • Добрый день.

    Принцип использования командной строки в Windows Server 2008 R2 остался неизменным и при запуске команды с ключом /? выводится справка по этой команде :-)

    В вашем случае для "тихого" выполнения команды wbadmin.exe нужен ключ -quiet

    Далее для автоматизации ротации бэкапов предлагаю вам использовать PowerShell отличное и простое средство для этих целей, благо он уже встроен в W2k8R2.

    Вот пример скрипта на PowerShell для архивации состояния системы на W2k8R2 (по сути - образ системного диска), он выполняет ротацию (удаляет устаревшие архивы) по дате создания архива:

    '1 получаем текущую дату
    
    $date = get-date
    
    '2 имя папки будет в формате dd.mm.yyyy
    
    $foldername = $date.toshortdatestring()
    
    '3 сравниваем дату создания архива и текущую дату, если прошло более 7 дней - удаляем архив
    
    foreach ($list in get-childitem d:\backup) {
    
    $obso = $date - $list.LastWriteTime
    
    if ($obso.days -gt 7) { remove-item d:\backup\$list -force -recurse}
    
    }
    
    '4 создаем папку для нового архива
    
    new-item d:\backup -name $foldername -type directory -force
    
    '5 выполняем архивацию
    
    %windir%\system32\wbadmin.exe -backupTarget:\\Server\SSBackUp -allcritical -vssFull -quiet

    Отредактируйте последнюю строку в соответствии с вашей задачей, укажите путь архивации (в моём случае это "d:\backup"), сохраните этот текст в текстовый файл с расширением .ps1 и запускайте его в шедулере с помощью powershell.exe

    igortiunov.ru
    • Помечено в качестве ответа Vinokurov Yuriy 11 марта 2011 г. 10:45
    6 марта 2011 г. 11:58