Резервное копирование при помощи SkyCover Duply

Применимость: Linux

Задача:

Нужно регулярно создавать резервные копии каталога с конфигурационными файлами системы и вебсервера

Решение:

SkyCover Duply (scduply) — это инструмент для управления резервным копированием, на основе конфигурационных файлов и простых команд.

scduply основан на коде duply и использует для резервного копирования программу duplicity.

Отличительные особенности:

  • глобальный конфигурационный файл для хранения общих настроек всех заданий;
  • опции duplicity «спрятаны» в простые конфигурационные настройки;
  • TARGET_URL можно задать глобально и к нему будет автоматически добавляться имя задания;
  • команда для последовательного выполнения всех настроенных заданий;
  • сохранение журналов работы по каждому сеансу;
  • отправка по почте HTML-отчетов с приложенными журналами.

Установка

Нужно установить пакеты duplicity и git

# команда для Debian/Ubuntu:
apt-get install duplicity git
# команда для RHEL/CentOS:
yum install duplicity git
# устанавливаем scduply
git clone git://github.com/skycover/scduply.git
cd scduply
./install.sh

Примечание: если Вам не удается получить scduply посредством git, Вы можете скачать установить его из tarball-а:

wget https://github.com/skycover/scduply/tarball/master -O scduply.tar.gz
tar zxvf scduply.tar.gz
cd skycover-scduply-*
./install.sh

Генерируем ключи шифрования и подписи

gpg --gen-key # запомнить ID ключа и пароль ключа

генерируем ключи ssh (если надо)

ssh-keygen

Настройка

Если Вы собираетесь хранить конфигурацию в /etc (доступно только при запуске scduply от root), создайте каталог /etc/scduply:

mkdir /etc/scduply

Иначе конфигурация автоматически разместится в $HOME/.scduply

Инициируем базовый конфиг

scduply init

*** The scduply initialized in '/etc/scduply'.
The initial global config file is '/etc/scduply/conf'

Отредактируйте файл /etc/scduply/conf

  • GPG_KEY — укажите ID ключа, если Вы собираетесь использовать ключ,
  • GPG_PW — укажите пароль для ключа GPG, или пароль для симметричного шифрования,
  • TARGET — укажите путь (сетевой или локальный) к месту хранения архивов.

В качестве TARGET можно использовать разные варианты, примеры есть в конфиге Например для сохранения на примонтированном диске или NFS каталоге можно указать:

TARGET='file:///mnt/backup/'

Настройка задания

scduply <ЗАДАНИЕ> create

<ЗАДАНИЕ> — имя задания. Будет создан подкаталог с этим именем и шаблонами настроек.

Например для резервирования /etc я создам задание с именем ETC

scduply ETC create

*** Created profile 'ETC'.
The backup source path is '/etc/scduply/ETC/source'.
The exclude globing list is '/etc/scduply/ETC/exclude'.
The initial config file is '/etc/scduply/ETC/conf'.

IMPORTANT:
  The profile folder is '/etc/scduply/ETC'.
  Copy the _whole_ profile folder after the first backup to a safe place.
  It contains everything needed to restore your backups. You will need 
  it if you have to restore the backup from another system (e.g. after a 
  system crash). Keep access to these files restricted as they contain 
  _all_ informations (gpg data, ftp data) to access and modify your backups.

  Repeat this step after _all_ configuration changes. Some configuration 
  options are crucial for restoration.

Нужно будет настроить 3 файла

  • /etc/scduply/ETC/conf - можно использовать базовый в качестве шаблона
  • /etc/scduply/ETC/source - здесь надо перечислить каталоги которые надо бэкапить, я укажу - /etc
  • /etc/scduply/ETC/exclude - список каталогов которые не надо бэкапить.

При указании путей надо использовать поный путь от корня ФС.

Файл /etc/scduply/ETC/exclude позволяет использовать шаблоны исключений. Двойная звездочка означает «исключить все

+ /home/dmi/Documents
+ /home/dmi/Photo
- **

Этот вариант будет бэкапить /home/dmi/Documents и /home/dmi/Photo, а все остальное будет исключено

Если Вы хотите, чтобы задание не вызывалось при пакетном запуске командой bkpall (бэкапить все задания), создайте пустой файл /etc/scduply/<JOB>/skip

Резервное копирование

Не забудьте сперва указать какую директорию копировать в файле /etc/scduply/<Имя задания>/source
scduply ЗАДАНИЕ backup

или, для бэкапа всех заданий

scduply bkpall

Если в глобальном файле конфигурации настроить переменные MAIL_*, то bkpall будет отсылать по e-mail отчет со сводкой по всем заданиям и журналом.

Восстановление

scduply ЗАДАНИЕ restore КАТАЛОГ-КУДА

Восстановление на 4 дня назад

scduply ЗАДАНИЕ restore КАТАЛОГ-КУДА 4D

Восстановление на 4 дня назад, только каталог will_be_lost

scduply ЗАДАНИЕ restore КАТАЛОГ-КУДА 4D --file-to-restore will_be_lost

Проверка состояния

scduply ЗАДАНИЕ status

Список файлов

scduply ЗАДАНИЕ list [ВОЗРАСТ]

Технические подробности

При начальной инициализации scduply для сохранения настроек использует каталог /etc/scduply (если он был создан до инициализации и программа запущена от root), или каталог ~/.scduply.

В каталоге настроек лежит глобальный файл конфигурации и создаются подкаталоги с профилями заданий бэкапа.

Каждый покаталог задания имеет файлы:

  • config — локальный файл конфигурации, в котором можно переопределять установки
  • source — файл содержит путь к каталогу, который будет бэкапиться
  • exclude — файл шаблонов-исключений (передается duplicity как —exclude-globbing-filelist)
  • descr — описание (первая строка) и заметки — все последующие. Создается и используется интерфейсом scdw.
  • skip — при наличии, профиль игнорируется командой bkpall
  • saved.env, gpg*.asc — файлы, содержащие информацию, достаточнуюдля восстановления на новом компьютере. Создаются автоматически в момент бэкапа.

При резервном копировании scduply создает журнал работы duplicity и записывает его в каталог ~/.scduply/log/ — при локальной установке и /var/log/scduply — при установке в /etc/scduply.

Дополнительная информация

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

man duplicity
sdcuply usage
man scduply

Восстановление после потери оборудования

Для восстановления данных из архива в случае потери оборудования, Вам понадобиться:

Минимальный набор:

  • Ваш GPG-ключ и пароль к нему (или пароль шифрования, если GPG-ключ не использовался). Рекомендуем: сделать копию каталога настроек (ПОСЛЕ осуществления хотя бы одного успешного санса резервного копирования — он уже будет содержать экспортированную копию GPG-ключа).
  • ssh-ключ, который использовался для подключения к хранилищу резервных копий. Рекомендуем: сделать копию каталога ~/.ssh.
Эти данные необходимо скопировать на переносной носитель (например, USB-Flash) и хранить в секретном месте, обязательно вне офиса. Копия данных ОБЯЗАТЕЛЬНО должна быть у руководителя предприятия и храниться вне офиса.

Полный набор:

Полный набор, необходимый для комфортного восстановления, включает:

  • Свежую копию каталога настройки (поскольку она будет содержать полный список настроенных заданий, последние настройки исключений и т.п.);
  • Журналы сеансов резервного копирования;
  • ssh-ключ для доступа к хранилищу резервных копий.

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

Настройки находится в каталоге/etc/scduply (если он был создан до инициализации и программа запущена от root), или в каталоге ~/.scduply.

Журналы резервного копирования записываются в каталог ~/.scduply/log — при локальной установке и /var/log/scduply — при установке в /etc/scduply.

Смотрите также: