Резервное копирование · 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‘ и его версию.
which rsnapshot
rsnapshot --versionВы можете увидеть ниже, что Rsnapshot 1.4 установлен в ‘/usr/bin/rsnapshot‘.

Настройка аутентификации по SSH-ключу
При выполнении удаленного резервного копирования вы должны убедиться, что ваш сервер rsnapshot может войти на целевой сервер с помощью аутентификации по SSH-ключу. Поэтому для удаленного резервного копирования вам необходимо иметь следующее:
- Пользователь, который будет использоваться для входа на целевой сервер
- Включена аутентификация на основе SSH-ключа
В этом разделе вы сгенерируете SSH-ключ на сервере rsnapshot. Затем скопируете открытый SSH-ключ на целевой сервер по адресу ‘192.168.10.41‘ с использованием пользователя ‘alice‘.
На сервере ‘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Измените уровни или интервалы резервного копирования по умолчанию следующим образом. Именование является необязательным, вы можете изменить его по мере необходимости. Таким образом, в этом примере ‘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 МБ.

Наконец, проверьте файл журнала резервного копирования ‘/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.
Get new posts in your inbox
No spam. Unsubscribe anytime.