Бэкап - как много в этом звуке!

Автор: Karel Wintersky

В необходимости бэкапов сомневаются лишь те, кто их еще не делает и никогда не терял информацию.

"Ой, кошка прыгнула на клавиатуру и стёрла всю главу!", "Ой, я залила чаем ноут и вся работа пропала", "Ой, флешка с файлами сдохла, я не знаю что делать!", "ой, мой жесткий диск сломался, я не могу восстановить файлы"

Когда вы оказывались в такой ситуации - без возможности восстановить данные? Если вы еще не делаете бэкапы - то хотя бы раз в жизни. 

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

Что же делать? Ну, ответ простой - делать бэкапы! А вот как именно - об одном из методов я и расскажу далее.

модель угроз и ценность данных (показать)

Спойлер: модель угроз

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

Вот к примеру, типы моих данных:

  • КУЧА (HEAP). В моем файловом хранилище эти данные лежат на разделе именно с таким именем. Это действительно "куча". Старые сохранения из игр, скриншоты, смешные картинки, сохраненные картинки с имиджбордов или девиантарта, архивы софта, который может быть когда-нибудь пригодится - в общем файлы, которые стереть жалко, но потеря их некритична совершенно. Даже не знаю, зачем я их храню...
  • MEDIA - Это скачанные из сети (в основном с торрентов) фильмы, аниме, музыка, учебные видеоролики, аудиокниги. Все это при желании можно скачать заново (действительно ценные видеозаписи, например домашние архивы, лежат отдельно) - просто долго и нудно. Здесь же лежит каталог "DOWNLOADED VIDEO" - То, что скачано, но еще не просмотрено. И в принципе, с этими файлами я тоже могу распрощаться - с сожалением, но не более.
  • ARCHIVES - это мои архивы. На самом деле такой раздел на моем сервере не один, упрощаю. Это архивы фотографий, аудиозаписи игровых сессий, рабочие архивы, домашнее видео. Потерять эти данные будет очень, очень, очень обидно. Но все еще не фатально-критично. 
  • WORK - это рабочие каталоги. Ну, все то, что относится к нынешним разработкам. Значительная часть этого - программный код, хранящийся в репозиториях на github/gitlab. Это упростит его восстановление, но кроме кода там еще и куча текстовой информации.
  • PRIVATE - а вот это уже действительно ценные данные. Пароли. Ключи шифрования. Лицензии. Коды доступа (точнее, восстановления доступа) к серверам и сервисам. То, потеря чего окажется хуже потери всех денег и/или работы. 

В моей модели угроз бэкапы следует делать начиная с ARCHIVES, а PRIVATE данные следует бэкапить минимум в два разных хранилища (естественно, используя запароленные архивы). Бэкапить MEDIA нерационально, а HEAP попросту бессмысленно. 

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

Забудьте про флешку как единственное место для бэкапа. Крупноразмерные флешки вообще не гарантируют сохранность информации (связано с особенностями технологии). Чуть лучше ситуация с жесткими дисками (классическими HDD, не SSD) - записанные на него данные (если контроллер не поврежден, по диску не стучали молотком и не сували в USB-rack) можно прочитать и через 10 лет, и через 20. Где-то у меня валяется вполне живой жёсткий диск 2001 года, правда использовать его затруднительно (IDE-интерфейс и объем в 850 мегабайт делают его почти бесполезным). 

А ещё, кстати, флэшку можно потерять. Или её может съесть собака (ага, мне рассказывали о таком). Или вы можете её случайно раздавить. Или... в общем, флэшка - не место для бэкапа - точнее, не место для единственного бэкапа.

А почему бы не пользоваться для хранения ваших книг/черновиков/дипломов гуглодиском? А потому, что сервисы гугла, будучи бесплатными, не гарантируют вам сохранность информации. И никакие бесплатные сервисы этого не гарантируют. Строго говоря, и платные сервисы вам не гарантируют абсолютной защиты информации, но они-то хотя бы дают гарантию в "две девятки" или лучше.

Итак, какие механизмы резервирования данных использую я?

Во-первых, Dropbox. Используется для хранения данных типа PRIVATE и WORK - небольших по объему, но значительных по ценности. Преимуществом dropbox-а тут является наличие "корзины", позволяющей восстанавливать удаленные файлы (только через сайт, правда и в течение 30 дней). Причем это "горячий бэкап", то есть подкаталоги в папке Dropbox "замаплены" на рабочие каталоги на диске. Таким образом, если я открываю в офисе файл D:\WORKSPACE\Fiction\Pearl\part_1.doc - на самом деле открывается файл D:\Dropbox\EnchainedData\WORKSPACE\Fiction... и так далее.

Делается это через механизм симлинков или "directory junction". К сожалению, эта магия не работает со Scrivener (по крайней мере 1.* версии) - но в остальном очень удобно - сами файлы на самом деле лежат в Dropbox, а то, что мы видим на диске - только ссылки на них. Этот механизм - свойство файловой системы NTFS и поддерживается начиная с WindowsXP (а может быть даже с 2000-ой, но это не точно). Под линуксом тоже такое есть, но если вы сидите под линуксом - эта статья вам скорее всего не нужна, вы и сами с усами 😺

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

Если возникнет конфликт (файлы с одним именем, но разного содержания) - dropbox создаст разные файлы с суффиком конфликтующая_копия_XXX_дата

Минусы тоже очевидны: если таки кошка пробежала по вашей клавиатуре, стерла всю главу, а ворд автосохранил файл - ну извините. Вообще, вопрос кошки и клавиатуры решается как дисциплинарно, так и технически, но о техническом методе я расскажу, если этот пост соберет больше... ну скажем, 300 лайков.

Да, вместо dropbox можно использовать яндекс-диск или клиент облака мейлру, но... я бы не советовал. Известен случай, когда клиент яндекс-диска стирал целиком диск "С" просто из-за бага в программе. В общем, можете использовать на свой страх и риск, принцип остается тем же.

На самом деле, у меня два горячих хранилища - первое - dropbox и второе - личное облако на личном сервере, сделанное через Nextcloud. В моем личном "облачном хранилище" ограничение на объем не 3 гигабайта, а несколько десятков, кроме того, через него удобнее "шарить" файлы и еще несколько фишек, рассмотрение которых выходит за рамки этой статьи. Кроме того, файлы, уехавшие в личное облако, все равно надо бэкапить. И вот о механизме бэкапа я расскажу далее.

Во-вторых... Помните, я писал выше, что один бэкап делать нельзя? Нужно хотя бы два. Так вот, перейдем к созданию бэкапа холодного, бэкапа по расписанию.

Я использую для хранения бэкапов облачное хранилище Selectel. У них очень приемлемые цены - 1,4 рубля за гигабайт в месяц (и еще сколько-то стоит траффик). Да, вы все правильно прочитали - 1 рубль 40 копеек за хранение одного гигабайта в течение месяца. Я храню там примерно 50 гигабайт (часть уезжает туда из домашних архивов, часть - бэкапы из поддерживаемых сервисов), мне это обходится в 100-120 рублей в месяц +/- и меня эти бекапы несколько раз спасали. 

Ке фер-то? Фер-то ке?


Прежде, чем рассказывать "как зарегаться и что настроить", я расскажу "как использовать". А то вдруг вам даже этот способ покажется неподъёмно сложным? Тогда просто пропустите остальную часть статьи :)

Для бэкапа потребуется программа RClone (https://rclone.org/downloads/), есть и под windows, и под мак, и под линукс. Скорее всего вам нужна первая строчка - intel/AMD 64bit. Скачиваем архив, распаковываем, кладём rclone.exe куда-нибудь, например в C:\windows, настраиваем конфиги, хранилище и контейнеры (об этом позже!) и запускаем:

rclone sync --config c:\rclone.conf -LPuv D:\MyWorkspace\ selectel:MY_BACKUP

Через некоторое время (зависящее от скорости вашего интернета и объема данных) ваши данные будут скопированы (или обновлены, за это отвечает буковка u ) в облачный контейнер Selectel. Забрать их оттуда можно напрямую, с сайта Selectel (скачать содержимое контейнера как архив) или командой

rclone copy --config c:\rclone.conf -LPuv selectel:MY_BACKUP D:\RestoredBackup\

Если же вы хотите делать не простую заливку файлов в облако, а использовать ежедневные архивы - придётся немного поморочиться и написать скрипт, который сначала заархивирует файлы в архив с текущей датой, а потом зальёт его в хранилище

код скрипта, версия первая (показать)


@ECHO OFF
FOR /F "skip=1" %%D IN ('WMIC OS GET LocalDateTime') DO (SET LIDATE=%%D & GOTO :GOT_LIDATE)
:GOT_LIDATE
SET DATETIME=%LIDATE:~0,4%-%LIDATE:~4,2%-%LIDATE:~6,2%-%LIDATE:~8,2%-%LIDATE:~10,2%-%LIDATE:~12,2%
@ECHO ON
rar a -m5 -mde -r d:\backup_%DATETIME%.rar d:\MyWorkspace\*
rclone sync --config c:\rclone.conf -LPuv d:\backup_%DATETIME%.rar selectel:MY_BACKUP
del d:\backup_%DATETIME%.rar

Разумеется, потребуется установленный RAR (WinRar) и Rclone. Сохраняем эти загадочные команды в cmd-файл... а дальше есть три варианта:

  • добавляем его в автозагрузку (чтобы бэкап делался при старте компьютера)
  • делаем на его ярлык (или запускаем его ручками)
  • настраиваем регулярный запуск через Task Scheduler

-----------------------------------------------------------------------------------------------------------------------------------------

Если вас все еще не отвратила сложность создания автоматического бэкапа - давайте посмотрим, что надо настроить в панели управления Selectel и что же это за строчки "selectel:MY_BACKUP" в командах выше. 

На самом деле, сложная часть кончилась, дальше будут картиночки - под спойлером.

...

+24
272

0 комментариев, по

280 138 86
Наверх Вниз