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‘ расположение двоичного файла и его версия.
which rsnapshot rsnapshot --version
Ниже показан Rsnapshot 1.4 устанавливается в ‘/usr/bin/rsnapshot‘.
Настройка аутентификации с помощью ключа SSH
При удаленном резервном копировании необходимо убедиться, что сервер rsnapshot может входить на целевой сервер с помощью аутентификации по ключу SSH. Поэтому для удаленного резервного копирования необходимо следующее:
- Пользователь, который будет использоваться для входа на целевой сервер
- Включена аутентификация на основе ключей SSH
В этом разделе вы сгенерируете SSH-ключ на сервере rsnapshot. А затем скопируем открытый ключ SSH на целевой сервер по адресу ‘192.168.10.41‘ использование пользователя ‘Элис‘.
На сервере ‘rsnapshot’ сгенерируйте открытый и закрытый ключи SSH, используя команду ‘ssh-keygen‘ команду ниже. Нажмите ‘ENTER’, когда вас попросят ввести ключ и пароль.
ssh-keygen -t ed25519
Теперь запустите команду ‘ssh-copy-id‘ команду ниже, чтобы загрузить открытый ключ SSH на целевой сервер. В этом примере вы будете выполнять удаленное резервное копирование с сервера ‘192.168.10.41‘ с аутентификацией SSH на основе ключей и с использованием пользователя ‘alice‘.
ssh-copy-id [email protected]
Введите пароль при появлении запроса.
После того как открытый ключ 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’, приведенную ниже. Обязательно измените ‘daily‘ с именем вашей резервной копии.
rsnapshot daily
Если процесс завершен, проверьте каталог резервных копий ‘/srv/backup‘ с помощью следующей команды. Вы увидите новый каталог резервного копирования ‘daily.0‘, содержащий файлы резервных копий с локальных и удаленных серверов.
ls /srv/backup/
Теперь выполните приведенную ниже команду, чтобы проверить использование диска программой rsnapshot.
rsnapshot du
В приведенном ниже выводе видно, что общее использование диска для резервной копии rsnapshot составляет 5 МБ.
Наконец, проверьте файл журнала резервного копирования ‘/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.