hostprofi.ru
Подобрать хостинг
Термин·буква R

rsnapshot

краткое определение

rsnapshot — утилита резервного копирования для Linux/Unix, основанная на rsync. Создаёт инкрементальные бэкапы с использованием жёстких ссылок (hardlinks): каждый снапшот выглядит как полная копия, но занимает место только для изменённых файлов.

rsnapshot — open-source инструмент резервного копирования на базе rsync и жёстких ссылок (hardlinks). Создаёт серию «виртуально полных» снапшотов файловой системы: каждый выглядит как независимая полная копия, но физически хранит только изменённые с прошлого снапшота файлы. Написан на Perl, работает на Linux, macOS и BSD. Не требует специализированного ПО на целевом хосте — достаточно rsync и SSH.

Как работает rsnapshot

Механизм основан на двух принципах. rsync передаёт только изменённые файлы (по дате, размеру и хешу блоков). Hardlinks позволяют неизменённым файлам из нового снапшота ссылаться на те же inode, что и в предыдущем снапшоте: файл существует в десятках снапшотов, но физически хранится один раз.

Типичный конфиг /etc/rsnapshot.conf:

snapshot_root   /mnt/backup/
retain          hourly  6
retain          daily   7
retain          weekly  4

backup          /var/www/         localhost/
backup          root@server2:/etc/ server2/

При запуске rsnapshot daily: новая директория daily.0 создаётся через hardlinks из daily.1, затем rsync обновляет изменённые файлы в daily.0. В результате daily.0 — свежий снапшот, daily.6 — снапшот недельной давности. Каждая директория занимает столько места, сколько изменилось с предыдущего запуска — не полный объём данных.

Удалённые серверы подключаются по SSH без пароля (ключевая авторизация). На целевом хосте нужен только rsync и sshd — агентов и дополнительного ПО не требуется.

История

rsnapshot создан Натаном Рихтером (Nathan Richter) в 2004 году как улучшение более раннего скрипта rsync-backup Майкла Бейкера. Вдохновлён статьёй Майка Ломбарди «Easy Automated Snapshot-Style Backups with Linux and Rsync» (2004). Проект распространяется под лицензией GPL v2. В 2010-х rsnapshot стал стандартным решением для небольших серверных окружений до появления более функциональных альтернатив: BorgBackup (2015) и Restic (2014), добавивших блочную дедупликацию и встроенное шифрование.

Виды конфигураций

  • Локальный бэкап — источник и назначение на одном сервере; простейший вариант для однодискового VPS
  • Pull-бэкап удалённых хостов — rsnapshot на backup-сервере «тянет» данные с целевых серверов по SSH; один сервер обслуживает десятки хостов
  • Бэкап нескольких хостов — один конфиг описывает много серверов, каждый в своей поддиректории snapshot_root
  • Инкрементальный бэкап БД — через pre/post-скрипты: mysqldump перед запуском rsnapshot, rsnapshot копирует дамп вместе с файловой системой

На что обращать внимание

rsnapshot подходит для VPS-серверов с Nginx, Postfix и небольшими базами данных. Критичный момент конфигурации: разделитель полей в rsnapshot.conf — строго Tab, не пробелы. Ошибка «config check failed» — причина большинства проблем при первом запуске. Проверка конфига: rsnapshot configtest.

Ключевые ограничения: не работает с Windows-серверами; нет встроенного шифрования (критично для off-site хранения); hardlinks не работают между разными файловыми системами — snapshot_root должен быть на том же разделе. Для зашифрованного off-site бэкапа предпочтительны BorgBackup или Restic с поддержкой S3-совместимого хранилища.

rsnapshot vs современные альтернативы

ИнструментДедупликацияШифрованиеСложностьS3-поддержка
rsnapshotHardlinks (ФС-уровень)НетНизкаяНет
BorgBackupБлочная (chunk-level)AES-256СредняяЧерез rclone
ResticБлочнаяAES-256-CTRСредняяНативная
rsync + cronНетНетМинимальнаяНет

Другие термины