Инструменты пользователя

Инструменты сайта


резервное_копирование_в_с_помощью_duply_duplicity

Резервное копирование в с помощью duply (duplicity)

Duply представляет собой shell скрипт, являющийся оберткой вокруг другого скрипта - duplicity. Не смотря на то, что сам по себе duplicity является полноценным ПО для создания резервных копий, duply дополняет его функционал рядом полезных свойств, упрощающих работу с опциями командной строки для выполнения различных типовых операций.

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

Рассмотрен вариант установки и настройки на Debian. Если вы используете Ubuntu то перед каждой командой добавляйте sudo

Устанавливаем duplicity и duply

apt-get install duply duplicity python-boto

Конфигурируем duply

Создадим пустой конфигурационный файл duply:

duply mybackup create

где mybackup - это название профиля, где будет описана схема будущего резервного копирования. Профиль будет создан в файле ~/.duply/mybackup/conf.

В файле /root/.duply/mybackup/conf, потребуется изменить строку TARGET в зависимости куда мы хотим сохранять архивы:

GPG_KEY='disabled'
TARGET='s3://xxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxx@s3.netangels.ru/uXXXXX-backup/uXXXXX-vmZZZZZ'
SOURCE='/'
MAX_AGE=20D
MAX_FULL_BACKUPS=3
MAX_FULLBKP_AGE=1W
DUPL_PARAMS="$DUPL_PARAMS --full-if-older-than $MAX_FULLBKP_AGE --volsize $VOLSIZE --s3-multipart-chunk-size=15 "
VOLSIZE=50

Параметры: GPG_KEY - Можно включить если нужно шифровать данные. Нам это не требуется, так как это увеличивает нагрузку. TARGET - Это метод путь куда будем сохранять с типом подключения SOURCE - Начальная точка архивации MAX_AGE - Количество дней хранения данных MAX_FULL_BACKUPS - Количество полных резервных копий MAX_FULLBKP_AGE - Максимальный возраст полных копий (в данном случае 1 неделя) DUPL_PARAMS - строка из параметров выше VOLSIZE - Сохранять резервные копии томами по указанное количество мегабайт (рекомендуется 50)

В файле /root/.duply/mybackup/exclude укажем какие каталоги не надо архивировать:

/dev
/proc
/sys
/tmp
/run
/lib/modules

В файле /root/.boto если используем s3 то пишем следующее:

[Boto]
host = s3.netangels.ru
port = 80
is_secure = False

Создание резервных копий

При запуске duply следует иметь ввиду, что не смотря на то, что и duply, и duplicity переведены на русский язык, с локалью ru_RU.UTF-8 duplicity не дружит. Поэтому перед запуском duply необходимо сменить локаль на англоязычную:

export LANG=C; 
/usr/bin/duply mybackup backup_purge --force

Поставим архивирование по расписанию на каждый день

Можно создать файл с root правами sudo nano /root/backup с содержимым:

#!/bin/bash
export LANG=C; /usr/bin/duply mybackup backup_purge --force

И запускать его, скажем, в 6 утра. Добавим это в cron так crontab -e

0 6     * * *   root    /root/backup

Просмотр состояния бэкапов

$ export LANG=C; duply mybackup status
...
 Type of backup set:                            Time:      Num volumes:
                Full         Tue Feb 25 12:24:20 2014                 1
         Incremental         Tue Feb 25 12:24:37 2014                 1
         Incremental         Wed Feb 26 05:28:01 2014                 1
         Incremental         Wed Feb 26 05:31:44 2014                 1
...

Здесь видно, что в наличии имеется 4 резервных копии: одна полная и 3 инкремента.

Восстановление данных из резервной копии

Восстановление состояния всей папки /var/www из последнего бэкапа (существующие данные будут перезаписаны):

export LANG=C; duply mybackup restore /var/www

Восстановить файл /var/www/index.html по состоянию 4х дневной давности в отдельный файл /tmp/restore.html (не перезаписывая текущий файл /var/www/index.html):

export LANG=C; duply mybackup fetch var/www/index.html /tmp/restore.html 4D

Обратите внимание, что путь к файлу внутри бэкапа пишется без начального слэша (/).

Подробнее о резервном копировании в облачное хранилище s3 по ссылке https://www.netangels.ru/support/cloud-storage/duplicity/

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
  _____   ___    _  __   ___   __  __
 / ___/  / _ |  / |/ /  / _ \ / / / /
/ (_ /  / __ | /    /  / , _// /_/ / 
\___/  /_/ |_|/_/|_/  /_/|_| \____/
 
резервное_копирование_в_с_помощью_duply_duplicity.txt · Последние изменения: 2015/07/25 18:57 — admin