Итак, будем сохраняться, чтобы потом не было мучительно больно. И очень хочется надеяться, что эти копии никогда не пригодятся.
Резервное копирование будем выполнять по следующей схеме:
|
|
|
|
|---|---|---|
| 1. | ежедневное резервное копирование | пять копий по рабочим дням |
| 2. | еженедельное резервное копирование | четыре копии по субботам |
Для реализации напишем следующий пакетный файл:
>type SystemBackUp_with_Rotate.cmd
@Echo off
Rem ====================================================
Rem Резервное копирование состояния системы с ротацией
Rem для Window серверов
Rem проверено на WinXPSp2, Win2000sp4, Win2003sp1(sp2), Win2003 r2
Rem ====================================================
setlocal enabledelayedexpansion
Rem Определение параметров работы:
Rem ==============================
Rem Путь к директории где храним резервные копии
Rem Set BACKUPSTORAGE=\\server\share$\BackUp\SystemStateBackUp\Weekly
Set BACKUPSTORAGE=\\server\share$\BackUp\SystemStateBackUp\Daily
Rem Сколько копий будем хранить
Rem Set History=4
Set History=5
ntbackup backup systemstate /F %BACKUPSTORAGE%\00-%COMPUTERNAME%-FFSysBackUp.bkf ^
/M Normal /V:Yes
If Exist %BACKUPSTORAGE%\XX-%COMPUTERNAME%-FFSysBackUp.bkf (
If Exist %BACKUPSTORAGE%\0%History%-%COMPUTERNAME%-FFSysBackUp.bkf ^
del %BACKUPSTORAGE%\XX-%COMPUTERNAME%-FFSysBackUp.bkf
)
If Exist %BACKUPSTORAGE%\00-%COMPUTERNAME%-FFSysBackUp.bkf (
If Exist %BACKUPSTORAGE%”\0%History%-%COMPUTERNAME%-FFSysBackUp.bkf” ^
ren %BACKUPSTORAGE%”\0%History%-%COMPUTERNAME%-FFSysBackUp.bkf” “XX-*.bkf”
FOR /L %%j IN (%history%,-1,1) DO (
set /a k=%%j - 1
If Exist %BACKUPSTORAGE%”\0!k!-%COMPUTERNAME%-FFSysBackUp.bkf” ^
ren %BACKUPSTORAGE%”\0!k!-%COMPUTERNAME%-FFSysBackUp.bkf” “0%%j-*.bkf”
)
)
If Exist %BACKUPSTORAGE%\XX-%COMPUTERNAME%-FFSysBackUp.bkf (
If Exist %BACKUPSTORAGE%\0%History%-%COMPUTERNAME%-FFSysBackUp.bkf ^
del %BACKUPSTORAGE%\XX-%COMPUTERNAME%-FFSysBackUp.bkf
)
* Красным цветом выделены строки в которых необходимо сделать изменения.
На основании представленого выше пакетного файла создадим два рабочих скрипта SystemBackUp_Daily.cmd и SystemBackUp_Weekly.cmd для ежедневного и еженедельного резервного копирования.
После чего запланируем две задачи:
Первая будет запускаться с понедельника по пятницу один раз в день (точнее в ночь) и выполнять скрипт SystemBackUp_Daily.cmd:
schtasks /create /tn “System BackUp Daily” ^
/tr “c:/scripts/SystemBackUp_Daily.cmd” /sc weekly ^
/d MON,TUE,WED,THU,FRI /st 01:00:00 ^
/ru Domain\BackUpUser /rp Password /s \\server ^
/u Domain\AdminRightUser /p Password
Вторая будет запускаться в субботу выполнять скрипт SystemBackUp_Weekly.cmd:
schtasks /create /tn “System BackUp Weekly” ^
/tr “c:/scripts/SystemBackUp_Weekly.cmd” /sc weekly ^
/d SAT /st 01:00:00 /ru Domain\BackUpUser /rp Password ^
/s \\server /u Domain\AdminRightUser /p Password

9 апреля 2008 в 09:10
А зачем так сложно?
Гораздо проще через ntbackup проделывать любой бэкап по любому расписанию.