Установка Rsnapshot на Ubuntu 12.04

Вступление

Данное руководство охватывает установку и использование rsnapshot, инструмента для удаленного резервного копирования, основанного на Rsync. Rsnapshot использует возможности Rsync для создания регулярных инкрементных резервных копий. Данное руководство продемонстрирует процесс создания локальных резервных копий, а также использование другого облачного сервера или домашнего компьютера как места для резервных копий. Чтобы иметь возможность выполнить данные действия, необходимо войти в систему как root-пользователь или начинать все команды с «sudo».

Что значит красный цвет?

Строки, которые пользователь должен ввести или изменить самостоятельно, выделены в данном руководстве красным!

Остальное можно просто скопировать и вставить.

1. Установка Rsnapshot и конфигурирование SSH-ключей

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

Утилита rsnapshot есть в репозиториях Ubuntu по умолчанию, потому ее можно установить при помощи «apt-get»:

sudo apt-get install rsnapshot

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

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

sudo ssh-keygen -t rsa

Фразовый пароль для данных ключей не нужен, так как эти серверы должны подключаться друг к другу без вмешательства пользователя. Чтобы принять значения по умолчанию, нажмите «Enter» на все извещения.

user@backupserver:~#: sudo ssh-keygen –t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:

The key's randomart image is:

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

sudo ssh-copy-id -i /root/.ssh/id_rsa.pub root@example.com

Убедитесь в том, что фраза «example.com» заменена IP-адресом или доменным именем исходного сервера.

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

sudo ssh root@example.com

Убедившись в том, что подключение разрешено, вернитесь на сервер резервного копирования.

exit

2. Конфигурирование Rsnapshot

После установки Rsnapshot нужно отредактировать конфигурационный файл.

sudo nano /etc/rsnapshot.conf

Единственное, что следует помнить во время работы с конфигурационным файлом rsnapshot – это размещение каждого каталога через слеш (/).

Для начала нужно решить, где будут храниться резервные копии. Данное руководство использует для этого каталог «/backup». Найдите и отредактируйте значение следующей переменной, чтобы установить место расположения архива:

snapshot_root                                 /backup/

Если такого каталога не существует, rsnapshot создаст его при запуске.

Также понадобится раскомментировать строку cmd_ssh, чтобы разрешить удаленное резервное копирование. Удалите символ # перед данной строкой, чтобы утилита rsnapshot получила возможность безопасно передавать данные на сервер резервного копирования.

cmd_ssh                                             /usr/bin/ssh

Удалите символ # перед строкой cmd_du, чтобы активировать точные отчеты об использовании диска.

cmd_du                                                              /usr/bin/du

Затем нужно уточнить, сколько старых резервных копий нужно хранить. Поскольку rsnapshot использует инкрементное резервное копирование, можно хранить старые резервные копии некоторое время, прежде чем снимать их

Это можно установить в разделе «BACKUP INTERVALS». Здесь нужно сказать rsnapshot сохранять определенное количество резервных копий каждого вида интервала. Данному руководству подходят настройки по умолчанию, но все же нужно раскомментировать интервал «monthly», чтобы получить некоторые долгосрочные резервные копии. Отредактируйте данный раздел таким образом:

#########################################
#           BACKUP INTERVALS            #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc.      #
#########################################
retain                   hourly  6
retain                   daily   7
retain                   weekly  4
retain                   monthly 3

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

ssh_args                                             -p 25000

В завершение решите, что именно нужно копировать. При локальном копировании одного и того же сервера достаточно указать каталоги, которые нужно сохранять, добавляя после каждого «localhost/» (подкаталог в snapshot_root, установленный ранее).

Для примера можно выбрать каталоги home и etc.

backup                 /home/                               localhost/
backup                 /etc/                     localhost/

При необходимости копировать удаленный или другой сервер, установите их в данном разделе, указав rsnapshot, где находится сервер, и какие каталоги нужно копировать, например:

backup                 root@example.com:/home/                    remote-droplet/

Rsnapshot основана на извлечении. Это означает, что без дополнительных обходных маневров и конфигураций передать резервные копии на удаленный сервер нельзя. Напротив, данные копии будут извлекаться на сервер с установленной rsnapshot.

Фразу «example.com» нужно заменить IP-адресом или доменным именем исходного сервера. После IP-адреса/доменного имени нужно поставить двоеточие, а затем указать путь к каталогу, который нужно копировать. «remote-droplet» – это подкаталог, в котором хранятся резервные копии. Для него можно выбрать любое название.

Теперь начальное конфигурирование rsnapshot завершено. Сохраните изменения файла etc/rsnapshot.conf,прежде чем продолжить. При использовании редактора nano, нажмите «Ctrl-X», чтобы выйти, затем «Yes», чтобы сохранить изменения.

Тестирование конфигураций

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

sudo rsnapshot configtest

Если в файле нет ошибок, будет выведено сообщение «SyntaxOK». Если данное сообщение не появилось, нужно вернуться и исправить ошибки, указанные в извещении.

Затем нужно выполнить пробный прогон одной из копий, чтобы убедиться, что все работает должным образом. Используйте параметр «hourly» (почасово), так как это основной тип копирования, на котором основаны все остальные. Это действие скажет rsnapshot смоделировать почасовое резервное копирование. Это должно вывести те команды, которые она будет выполнять при реальном запуске.

sudo rsnapshot -t hourly

Если выведенный результат имеет правильный вид, можно убрать опцию «-t», чтобы запустить настройки.

sudo rsnapshot hourly

Это действие запустит резервное копирование, установленное в конфигурациях. В данном руководстве rsnapshotсоздала каталог /backup, а также структуру каталогов для организации файлов в нем.

Автоматизация процесса

Все, что осталось сделать, – установить интервалы запуска резервного копирования. Для этого используйте cron, планировщик linux.

К счастью, rsnapshot содержит по умолчанию файл cron, который можно отредактировать на свое усмотрение. Для его редактирования можно использовать редактор nano.

sudo nano /etc/cron.d/rsnapshot

В данный момент планирование закомментировано.  Нужно удалить символ # перед секцией планирования, чтобы активировать данные значения.

# This is a sample cron file for rsnapshot.
# The values used correspond to the examples in /etc/rsnapshot.conf.
# There you can also set the backup points and many other things.
#
# To activate this cron file you have to uncomment the lines below.
# Feel free to adapt it to your needs.
0 */4         * * *           root    /usr/bin/rsnapshot hourly
30 3          * * *           root    /usr/bin/rsnapshot daily
0  3          * * 1           root    /usr/bin/rsnapshot weekly
30 2          1 * *           root    /usr/bin/rsnapshot monthly

Данные настройки запускают создание резервной копии в подкаталоге «hourly» каталога «/backup/» каждые четыре часа, создание ежедневной копии в 3:30 am, создание еженедельной копии каждый понедельник в 3.00 am, а также ежемесячное копирование первого числа каждого месяца в 2:30 am.

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

Tags: , , , ,

1 комментарий

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