Организация бэкапа: rdiff-backup + encfs + Dropbox

Проблема организации бэкапа данных, с которыми работаю прямо сейчас, меня беспокоила долго. Наконец я нашел удобное для меня решение.

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

Сложнее с проектами, которые в работе прямо сейчас.

Подготовка

Для начала я отделил те данные, с которыми я работаю сейчас от архива и результатов работы. Это относительно небольшой каталог с активными проектами. Относительно — потому что в нем 14G.

Dropbox

Я использую dropbox, потому что он имеет одну приятную особенность — он просто работает. Без лишних усилий. 2G на бесплатном аккаунте мне, конечно, мало — я пользуюсь платным.

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

Внутри Dropbox у меня большая часть данных, но рабочий каталог с данными над которыми работаю сейчас — нет.

Во-первых, потому что в рабочем каталоге у меня часто может быть приватная информация, в том числе чужая. И хотя я облачным сервисам более-менее доверяю, мои клиенты — не всегда, и я должен уважать их политику безопасности.

Во-вторых — данные там могут меняться слишком часто. И быть объемными — например логи отладки. Синхронизация при каждом изменении это перебор.

Encfs

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

Поэтому в Dropbox лежат encfs-разделы.

Кроме того, у Dropbox есть один неприятный недостаток — он case sensitive (из-за совместимости с windows). А значит, если у меня в каталоге есть файлы, скажем, README и readme, то один из них он переименует.

encfs шифрует имена файла, за счет этого вероятность таких пересечений становится минимальной.

Так что я создаю с помощью encfs внутри ~/Dropbox отдельный каталог для бэкапов, и монтирую его куда-нибудь за пределы каталога ~/Dropbox:

$ mkdir ~/Dropbox/encfs/backup
$ mkdir ~/backup
$ encfs ~/Dropbox/encfs/backup ~/backup

 rdiff-backup

Собственно для бэкапа я использую простейший скрипт:

#/bin/sh
from=$1
to=$2
if [ -d $to ]; then
    rdiff-backup "$from" $to
    rdiff-backup --remove-older-than 1M $to 2>&1 > /dev/null
fi

Он проверяет наличие каталога (на случай, если encfs раздел не смонтирован), и если он есть — выполняет backup.

После чего удаляет из бэкапа старые snapshot'ы (старее месяца).

Этот скрипт в cron'е запускается раз в сутки.

 Итог

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

И да, так как я параноик, также с помощью rdiff-backup на одной из своих машин я делаю ежедневный backup всего содержимого каталога Dropbox. На тот маловероятный случай, если ошибка на самом сервисе Dropbox приведет к потере данных.

Запись опубликована в рубрике Новости. Добавьте в закладки постоянную ссылку.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Оставьте эти два поля как есть:

Защищено Invisible Defender. Показывать 403 для 284 321 плохих парней.