Делаем Инкрементный (добавочный) бэкап в облако. Посредством программы "gBackup" и управляющего [more=скрипта.cmd]::Управляющий скрипт.cmd (кодировка OEM866):
@echo off
TITLE Архивация файлов для Mail-Диска
ECHO Идёт архивация файлов ...
SET ARH=d:\Backup\MailDisk
SET obl=c:\Upload\Облако_mail.ru
SET pw=пароль
SET CMND=d:\Backup\gbackup.exe
SET O=-o%ARH%\backup.log
SET PAR=-ip~$*.doc -n999 -rar2 -i -f -r -nsjpg;avi;mp3;rar;zip;7z %O%
SET PAR2= -7z4 -n999 -f -i -k %O%
%CMND% "%ProgramFiles%\Opera 12.12\profile" "%ARH%\Program\Opera 12.12" -fb*.ini -fb*.adr -fb*.dat -dpsessions -dpmail %PAR2%
%CMND% D:\Музыка %ARH%\Музыка %PAR%
%CMND% D:\Документы %ARH%\Документы %PAR2%
IF NOT EXIST %ARH% GOTO EOF
CD /d %ARH%
"c:\Program Files\7-Zip\7z" a -t7z Backup.7z -p%pw% *.rar *.7z -r -v1000m -mx0
DEL /f /s /q %ARH%\*.rar
DEL /f /s /q %ARH%\*.7z
IF NOT EXIST %ARH%\Backup.7z.001 GOTO EOF
IF NOT EXIST %ARH%\otkat.inf ECHO 1 >%ARH%\otkat.inf
SET /p d=<%ARH%\otkat.inf
SET /a h=%d%+1
IF %d% lss 10 SET d=0%d%
IF %d% lss 100 SET d=0%d%
::IF %d% lss 1000 SET d=0%d%
ECHO %h% >%ARH%\otkat.inf
SET d=%d: =%
MD %obl%
IF NOT EXIST %ARH%\Backup.7z.002 (
REN %ARH%\Backup.7z.001 Backup%d%.7z
MOVE %ARH%\Backup%d%.7z %obl%\
) ELSE (
MD %obl%\Backup%d%
FOR %%i IN (%ARH%\*.7z.*) DO MOVE %%i %obl%\Backup%d%\
)
%CMND% %ARH%\*.sp? %ARH%\Cписки -uda2 -fpRestore.cmd -fb*.txt -fb*.inf -e %o%
MOVE %ARH%\Cписки\arhiv_1.exe %obl%\arhiv_%d%.exe
::PAUSE
[/more], так же требуется установленный в системе архиватор "7-zip". Скрипт создает два архива: 1. полный архив с текущими списками файлов "arhiv.sp?"+ скриптами "Restore.cmd" и 2. запароленный инкрементный архив, разбитый на тома по 1Гбайт. Архивы в последствии перемещаются скриптом в установленную для выгрузки папку.
Загрузка файлов в облако осуществляется вручную через браузер, а для архивов со списками файлов можно там создать отдельную папку, туда же загрузить программу "gBackup" и скрипты. При загрузке файлов в облако, сохраняем струтуру папок (если есть). После загрузки в облако, всю выгружаемую папку можно удалить. На компьютере остаются только списки файлов, которые занимают мало места.
Количество архивов в стеке в параметрах "gBackup" выставляем заведомо не достижимое, например если при значении -n999 выполнять архивацию раз в неделю, то этого хватит на 999/(12*4)=20 лет.
Так как режим архивации инкрементный, то большой объём файлов нужно будет закачать только в первый раз (полный архив), а в последствии нужно будет закачивать небольшой объём только изменившихся файлов (обычно 2 архива: один со списками, другой с данными).
Для восстановления файлов необходимо скачать все запароленные архивы, соблюдая структуру папок. Скопировать в папку с архивами и запустить [more=скрипт]::Скрипт для распаковки запароленных архивов, скачанных из облака (кодировка OEM866):
@echo off
SET pth=%~dp0
SET nm=Backup
SET parol=пароль
SET prg="%ProgramFiles%\7-Zip\7z" x -p%parol%
IF NOT EXIST %nm% MD %nm%
:n
SET /a h=%h%+1
SET d=%h%
IF %h% lss 10 SET d=0%d%
IF %h% lss 100 SET d=0%d%
::IF %h% lss 1000 SET d=0%d%
IF EXIST %nm%%d%.7z (
%prg% %nm%%d%.7z -o%nm%
) ELSE (
IF NOT EXIST %nm%%d% EXIT
%prg% %nm%%d%\%nm%.7z.001 -o%nm%
)
GOTO :n
::PAUSE
[/more] распаковки запароленных архивов. Затем скопировать в папку с архивами последний архив со списками файлов и саму программу "gBackup", распаковать архив, чтобы все скрипты "Restore.cmd" восстановились в свои папки. С помощью скриптов "Restore.cmd" восстанавливаем файлы из архивов.
Скрипты лежат здесь:
https://yadi.sk/d/GCzg5Ui1isGKb