Инкрементное резервное копирование файлов на Windows Server 2014

Система архивации данных Windows Server 2014 поддерживает инкрементное создание резервных копий на локальный диск. Но данный вариант не работает при копировании в сетевую папку.

Решение - использование "Планировщика задач" и простых, стандартных утилит.

Батник для создания копий (ставим в Планировщик):

echo %off
setlocal
1>nul chcp 1251
set day=-7
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "data=%dd%.%mm%.%yyyy%"
forfiles /p C:\users /m * /s /D %data% /c "cmd /q /c if @isdir==FALSE echo @path" > C:\list_zip.txt
C:\Progra~1\7-Zip\7z.exe a -spf -scsWIN -ssw -xr!~$*.* -pChangePwd \\[Сетевой источник]\Backup\%date%.zip @C:\list_zip.txt

Здесь,
%data% - вычисляется дата, меньше текущей на 7 дней,
forfiles - формирование списка файлов для архивирования, измененных за последние 7 дней,
7z - создание и копирование запароленного архива по ранее сформированному списку файлов.

Для удаления старых архивных копий можно использовать следующий батник:

NET USE V: \\[Сетевой источник]\Backup
forfiles /p V:\ /m *.zip /s /d -31 /c "cmd /c del @path /q"
NET USE V: /delete /yes

Здесь удаляются все архивы, старее 31 дня.

Вышеописанный метод эффективно работает с периодическим созданием полного бекапа сервера.

Добавить комментарий

Ваш e-mail не будет опубликован.

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: