Быстрое И Надежное Резервное Копирование Данных В Облако

Одной из наиболее проблемных задач для обычного пользователя является резервное копирование под Windows, которое будет охватывать следующие вопросы:

  • быстрый (идеально в фоновом режиме);
  • сохранял бы как текущую версию файлов, так и предыдущие;
  • хранилище файлов будет недоступно для вирусов или стихийных бедствий, таких как разрушение или кража носителя;
  • содержимое резервной копии будет доступно только пользователю, т.е.

    защищенному паролем.

Предложений на этот счет много, но ни одно из них полностью не решает поставленную задачу.

Легкое простое копирование не обеспечивает скорости, быстрое сохранение не обеспечивает надежности, копирование на внешний жесткий диск не гарантирует его кражу.

Однако инструменты для решения проблемы уже давно существуют. Главное правильно использовать Unix-способ и батники.

А самый простой вариант — заархивировать файлы в один архив и отправить его в онлайн-хранилище с помощью командной строки.

Для ускорения работы задача разбита на 2 этапа - сначала создается полный архив и отправляется в онлайн-хранилище, затем по мере необходимости создаются инкрементные архивы, что дает скорость.

Шифрование архива обеспечивает безопасность данных.

Что необходимо для решения проблемы:

  • аккаунт в яндексе для получения доступа через webdav к яндекс диску.

    Использование любого другого хранилища не запрещено;

  • 7z — консольный архиватор, распространяется бесплатно;
  • Curl — консольный инструмент для работы с Интернетом, распространяемый бесплатно.

Для переносимости я поставил 7z.exe , 7z.dll И Curl.exe в один каталог.

В зависимости от способа составления Curl.exe , возможно, придется поставить рядом или добавить в библиотечную систему libeay32.dll , libssh2.dll , msvcr100.dll , MSVCR110.dll .

Далее в этом каталоге желательно создать каталог, в котором нужно разместить файлы и каталоги будущего архива.

Я называю это "резервное копирование" и в нем размещаю жесткие ссылки на файлы или ссылки на каталоги (соответствующий функционал доступен в FAR по комбинации клавиш Alt+F6).

Таким образом, не меняя структуру существующих данных, я могу создать удобную для меня структуру резервного копирования.

Следующий каталог - "температура" .

Предназначен для хранения архива данных перед отправкой на сервер.

При этом это будет зашифрованная копия текущих данных, обеспечивающая дополнительную резервную копию в случае вирусной атаки.

Затем вам нужно создать довольно простой bat (cmd) файл в исходном каталоге.

"полный.

bat" следующее содержание:

  
   

@echo off set filebkp=work set pathbkp=backup set srvbkp= https://user:[email protected]/backup/%filebkp% set pathtemp=temp set full=%filebkp%-full del /F /Q "%pathtemp%"\ 7z.exe a "%pathtemp%\%full%".

7z -x!*.

log; -r -mx1 "%pathbkp%\*" -ppass_for_archive curl.exe -k -X DELETE "%srvbkp%" --verbose -o .

\stdout curl.exe -k -X MKCOL "%srvbkp%" --verbose -o .

\stdout curl.exe -k -T "%pathtemp%\%full%".

7z "%srvbkp%"/ --progress-bar --verbose -o .

\stdout

  • установить filebkp=работа — указание общего имени компьютера и пути на сервере, где будет храниться резервная копия.

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

  • установить pathbkp=резервное копирование — указание пути к каталогу, в котором хранятся резервные данные, в этом случае указывается каталог с жесткими ссылками и ссылками на каталоги, который вы должны были создать ранее.

  • установить srvbkp= https://user:[email protected]/backup/%filebkp% — указание каталога на сервере, куда будет загружена резервная копия.

    пользователь и пароль – пароли к вашей учетной записи Яндекс;

  • установить полный =%filebkp%-full — заранее указав название архива.

  • del /F /Q "%pathtemp%"\ — удаление (очистка) временного каталога
  • 7z.exe a "%pathtemp%\%full%".

    7z -x!*.

    log; -r -mx1 "%pathbkp%\*" -ppass_for_archive — строка запуска архиватора.

    pass_for_archive — Ваш пароль для архива.

  • Curl.exe -k -X УДАЛИТЬ "%srvbkp%" --verbose -o .

    \stdout — удаление каталога назначения на сервере.

  • Curl.exe -k -X MKCOL "%srvbkp%" --verbose -o .

    \stdout — повторное создание каталога назначения на сервере.

  • Curl.exe -k -T "%pathtemp%\%full%".

    7z "%srvbkp%"/ --progress-bar --verbose -o .

    \stdout — загрузка архива на сервер с помощью Curl.

Таким образом, запустив скрипт "полный.

bat" , Полную версию ваших файлов вы получите в архиве в каталоге "температура" и она в каталоге "резервное копирование/работа" на сервере, зашифрованный вашим паролем.

Это может занять некоторое время и имеет свои ограничения по размеру архива, но наиболее важные и в то же время ежедневно меняющиеся данные следует архивировать именно таким способом.

Почему важно и меняется ежедневно? Поскольку следующий сценарий, "вкл.

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

@echo off set filebkp=work set pathbkp=.

\backup set srvbkp= https://user:[email protected]/backup/%filebkp% set pathtemp=.

\temp set full=%filebkp%-full set inc=%filebkp%-inc set h=%TIME:~0,2% set m=%TIME:~3,2% set s=%TIME:~6,2% set ms=%TIME:~9,2% set curtime=%h%-%m%-%s% set dd=%DATE:~0,2% set mm=%DATE:~3,2% set yyyy=%DATE:~6,4% set curdate=%yyyy%-%mm%-%dd% set curdatetime=%curdate% %curtime% 7z.exe u "%pathtemp%\%full%".

7z -x!*.

log; -u- -up3q3r2x2y2z0w2!"%pathtemp%\%inc%".

7z "%pathbkp%\*" -ppass_for_archive ren "%pathtemp%\%inc%".

7z "%inc% %curdatetime%".

7z curl.exe -k -T "%pathtemp%\%inc% %curdatetime%".

7z "%srvbkp%"/ --progress-bar --verbose -o .

\stdout

Думаю, вы сможете расшифровать этот файл самостоятельно — скрипт использует 7z для анализа того, что уже есть в каталоге "температура" полный архив и исходный каталог, находит измененные файлы, упаковывает их в инкрементный архив, названный по текущей дате и времени, и отправляет на сервер.

Таким образом, если полное архивирование занимает, скажем, 1 гигабайт и 3 минуты времени, то измененные файлы обычно занимают 10-50 мегабайт и долетают до сервера за несколько секунд. Поместив "вкл.

бат" в планировщике задач Windows вы разрешите этому процессу происходить по расписанию в удобное для вас время, что позволит вам забыть о нем.

Когда вам покажется, что время создания инкрементных копий стало слишком большим, вы можете запустить его еще раз.

"полный.

bat" - это очистит все каталоги от полных и инкрементных архивов и создаст новую версию полной версии.

Теги: #облачные сервисы #Резервное копирование #curl #bat #yandex.disk #7z

Вместе с данным постом часто просматривают: