Как использовать Rsnapshot для резервного копирования и восстановления на серверах Linux

rsnapshot – это утилита резервного копирования для машин на базе Linux. Она доступна в большинстве дистрибутивов Linux, вы можете легко установить ее через менеджер пакетов. rsnapshot написана на Perl без каких-либо зависимостей, она также поддерживает локальное и удаленное резервное копирование.

С помощью rsnapshot можно создать резервную копию локальной директории. Что касается удаленного резервного копирования, rsnapshot использует ‘ssh’ и ‘rsync’.

В этом уроке вы узнаете, как создавать резервные копии и восстанавливать их с помощью Rsnapshot на сервере Linux. Вы настроите rsnapshot для локального и удаленного резервного копирования. Вы также узнаете, как настроить автоматическое резервное копирование с помощью rsnapshot и cron.

Установка rsnapshot

rsnapshot – это утилита для резервного копирования, которая доступна в большинстве дистрибутивов Linux. Вы можете установить её через соответствующий менеджер пакетов. В этом разделе вы будете устанавливать rsnapshot на сервер Debian. Если вы используете другой дистрибутив, установите его с помощью текущего менеджера пакетов.

Сначала обновите индекс пакетов с помощью следующей команды. В этом примере мы будем использовать Debian, вы можете использовать дистрибутивы на базе Debian, такие как Ubuntu, Linux Mint и т.д.

sudo apt update

обновить репо

После обновления выполните приведенную ниже команду для установки ‘rsnapshot‘ пакет. Введите ‘Y‘, чтобы подтвердить установку.

sudo apt install rsnapshot

установить rsnapshot

После завершения установки проверьте ‘rsnapshot‘ расположение двоичного файла и его версия.

which rsnapshot
rsnapshot --version

Ниже показан Rsnapshot 1.4 устанавливается в ‘/usr/bin/rsnapshot‘.

проверить rsnapshot

Настройка аутентификации с помощью ключа SSH

При удаленном резервном копировании необходимо убедиться, что сервер rsnapshot может входить на целевой сервер с помощью аутентификации по ключу SSH. Поэтому для удаленного резервного копирования необходимо следующее:

  • Пользователь, который будет использоваться для входа на целевой сервер
  • Включена аутентификация на основе ключей SSH

В этом разделе вы сгенерируете SSH-ключ на сервере rsnapshot. А затем скопируем открытый ключ SSH на целевой сервер по адресу ‘192.168.10.41‘ использование пользователя ‘Элис‘.

На сервере ‘rsnapshot’ сгенерируйте открытый и закрытый ключи SSH, используя команду ‘ssh-keygen‘ команду ниже. Нажмите ‘ENTER’, когда вас попросят ввести ключ и пароль.

ssh-keygen -t ed25519

генерация ssh-ключа

Теперь запустите команду ‘ssh-copy-id‘ команду ниже, чтобы загрузить открытый ключ SSH на целевой сервер. В этом примере вы будете выполнять удаленное резервное копирование с сервера ‘192.168.10.41‘ с аутентификацией SSH на основе ключей и с использованием пользователя ‘alice‘.

ssh-copy-id [email protected]

Введите пароль при появлении запроса.

ssh up-load key

После того как открытый ключ SSH загружен, вы готовы к настройке Rsnapshot.

Настройка rsnapshot

В этом разделе вы настроите rsnapshot для локального и удаленного резервного копирования. Вы измените конфигурацию по умолчанию ‘/etc/rsnapshot.conf‘, установите каталог резервного копирования по умолчанию, включите интеграцию с SSH и Rsync, настройте интервальное резервное копирование, а затем настройте локальное и удаленное резервное копирование.

Скопируйте конфигурацию rsnapshot по умолчанию ‘/etc/rsnapshot.conf‘ и измените файл с помощью опции ‘nano‘ или ‘vim‘ редактор.

sudo cp /etc/rsnapshot.conf /etc/rsnapshot.conf.orig
sudo nano /etc/rsnapshot.conf

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

snapshot_root /data/backup/

Снимите комментарий с ‘cmd_rsync‘ и ‘cmd_ssh‘ опции для включения удаленного резервного копирования с помощью rsync через SSH.

cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh

Измените уровни или интервалы резервного копирования по умолчанию, как показано ниже. Именование необязательно, вы можете изменить его по своему усмотрению. В этом примере используется ‘ежедневно 6‘ создаст резервные каталоги с именами ‘daily.0‘ к ‘ежедневно.5‘.

ПРИМЕЧАНИЕ: Используйте TAB вместо пробела, потому что это приведет к ошибке.

retain daily 6
retain weekly 7
retain monthly 4

Отмените комментарий ‘logfile‘ опция, позволяющая вести журнал rsnapshot в файл.

logfile /var/log/rsnapshot.log

Если вы используете удаленный сервер с пользовательским SSH-портом, отмените опцию ‘ssh_args‘ и измените порт.

ssh_args -p 22

Теперь для локального резервного копирования используйте конфигурацию следующим образом. В этом примере мы создадим резервную копию локальной директории ‘/home/arvdl” на ‘локальный‘. Путь назначения должен быть относительным путем, это равносильно ‘/srv/backup/name-interval/local‘.

backup /home/arvdl/ local

Для удаленного резервного копирования через SSH и rsync используйте такую конфигурацию. В этом примере мы будем создавать резервные копии каталогов ‘/etc‘ и ‘/var/www‘ с удаленного сервера ‘192.168.10.41‘ с пользователем SSH ‘Элис‘ к ‘сервер1‘ относительный путь к каталогу.

backup [email protected]:/etc/ server1
backup [email protected]:/var/www server1

Сохраните и выйдите из файла после завершения работы.

После настройки rsnapshot проверьте и протестируйте конфигурацию rsnapshot с помощью следующих действий. Если вы правильно настроили конфигурацию, вы увидите вывод ‘Синтаксис OK‘.

rsnapshot configtest

проверка конфигурации rsnapshot

Проверка резервного копирования rsnapshot вручную

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

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

rsnapshot daily

Если процесс завершен, проверьте каталог резервных копий ‘/srv/backup‘ с помощью следующей команды. Вы увидите новый каталог резервного копирования ‘daily.0‘, содержащий файлы резервных копий с локальных и удаленных серверов.

ls /srv/backup/

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

rsnapshot du

В приведенном ниже выводе видно, что общее использование диска для резервной копии rsnapshot составляет 5 МБ.

rsnapshot du

Наконец, проверьте файл журнала резервного копирования ‘/var/log/rsnapshot.log‘, чтобы проверить процесс резервного копирования.

cat /var/log/rsnapshot.log

Ниже показано, что резервное копирование прошло успешно, но с некоторыми предупреждениями, например, разрешение запрещено при резервном копировании ‘/etc/shadow‘ файл.

файл журнала

Автоматическое резервное копирование с помощью Cron

Для автоматического резервного копирования вы можете интегрировать rsnapshot с cron. Например, вы настроите cron для автоматического резервного копирования так: ‘ежедневно‘, ‘еженедельник‘, и ‘ежемесячно‘.

Откройте файл ‘/etc/cron.d/rsnapshot‘ с помощью редактора ‘nano’. Этот файл является примером, сгенерированным программой rsnapshot.

sudo nano /etc/cron.d/rsnapshot

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

0 0 * * * root rsnapshot daily
0 0 * * 0 root rsnapshot weekly
0 0 1 * * root rsnapshot monthly

Сохраните файл и выйдите из редактора.

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

Восстановление резервной копии rsnapshot

Чтобы восстановить резервную копию rsnapshot, вам нужно просто скопировать данные из каталога резервной копии в целевой каталог. В данном примере вы можете скопировать данные из каталога резервных копий ‘/srv/backup’.

Заключение

Поздравляем! Вы завершили руководство по установке rsnapshot и настройке rsnapshot для локального и удаленного резервного копирования, а также узнали некоторые основные команды ‘rsnapshot’. Наконец, вы узнали, как настроить автоматическое резервное копирование с помощью rsnapshot и cron.

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

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