Показать сообщение отдельно

  #8  
Старый 09.11.2018, 14:18
m.kn
Новичок
Регистрация: 05.11.2018
Сообщений: 13
С нами: 3959151

Репутация: 0
По умолчанию

1. Скрипт на BAT инкрементного копирования файлов.

В системе требуется установленный 7zip
В планировщике ставим ежедневный запуск full.bat
Если полный архив отсутсвует - скрипт создаст полный бэкап
Если уже есть полный архив - будет создан инкремент с отбором по атрибуту "архивный". Если сегодняшний инкремент уже есть (например ПК днем перезагрузили), то скрипт ничего не делает.
В планировщике ставим запуск dellfull.bat например раз в месяц. Этот скрипт сотрет прежний полный бэкап, что послужит сигналом к полному очищению папки хранения бэкапов и запуску создания свежего полного архива

full.bat

Код:


Код:
rem ************ блок настроек скрипта************
rem установка параметров

rem что копируем
set source=D:\Documents

rem временная папка, используется для создания инкрементов, сама очищается
set zipertmp=E:\zipertmp

rem куда копируем
set destination=E:\docs_backup

rem указываем путь до архиватора 7-zip
set ziper="C:\Program Files\7-Zip\7z.exe"

rem ***********************************************
rem определяем дату и записываем в переменную
for /F "tokens=1-3 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%1.%%2.%%3
rem ***********************************************

rem **********блок создания инкрементов ***********
rem если есть полный архив, то делаем инкремент и выходим. Если полный архив отсутствует - переходим в раздел создания полного архива
if not exist %destination%\full_**********.zip goto createfull

rem Если уже есть сегодняшний инкремент, то ничего делать не надо
if exist %destination%\incr_%mydate%.zip goto gdby

rem делаем инкремент
rd %zipertmp% /S /Q
mkdir %zipertmp%
robocopy %source% %zipertmp% /S /Z /M
%ziper% a %destination%\incr_%mydate%.zip %zipertmp%\* -mx5
rd %zipertmp% /S /Q

:gdby
exit
rem *************************************************

rem ************ блок создания полного архива ************
:createfull
rem очищаяем папку назначения
rd %destination% /S /Q
mkdir %destination%

rem Делаем полный архив 7зипом
%ziper% a %destination%\full_%mydate%.zip %source%\* -mx5

rem Снимаем атрибут "архивный" со всех файлов в целевом каталоге
cd /d %source%
attrib -A *.* /S /D
exit
rem ******************************************************
dellfull.bat

Код:


Код:
set destination=E:\docs_backup

del %destination%\full_**********.zip /q /a
 
Ответить с цитированием