Резервное копирование · 5 min read · Sep 16, 2025

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

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

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

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

Предварительные требования

Чтобы завершить это руководство, убедитесь, что у вас есть следующее:

  • Сервер Linux, такой как Debian, Ubuntu, CentOS или любой другой дистрибутив
  • Непривилегированный пользователь с правами администратора
  • Дополнительно, сервер для тестирования удаленного резервного копирования

Установка 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‘ с использованием пользователя ‘alice‘.

На сервере ‘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 загрузить ключ

После загрузки открытого 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

Измените уровни или интервалы резервного копирования по умолчанию следующим образом. Именование является необязательным, вы можете изменить его по мере необходимости. Таким образом, в этом примере ‘daily 6‘ создаст каталоги резервного копирования с именами ‘daily.0‘ до ‘daily.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/arvd‘ в ‘local‘. Путь назначения должен быть относительным, это эквивалентно ‘/srv/backup/name-interval/local‘.

backup /home/arvdl/ local

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

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

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

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

rsnapshot configtest

Тестирование резервного копирования 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 для автоматического резервного копирования как ‘daily‘, ‘weekly‘ и ‘monthly‘.

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

sudo nano /etc/cron.d/rsnapshot

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

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.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.