Что такое rsnapshot и почему его любят админы
rsnapshot — это «обёртка» над rsync, которая делает снимки файловой системы по расписанию. Фишка в том, что старые снимки используют hard link-и: если файл не менялся, он не копируется заново и почти не занимает место.
За 20–30 минут настроить регулярные инкрементные бэкапы с понятной ротацией (daily/weekly/monthly), чтобы восстановление файлов было «как из папки».
В результате:
бэкапы получаются инкрементными и экономными по диску;
структура простая:
daily.0,daily.1… — это обычные каталоги;восстановление = обычное копирование файла назад.
Предварительные требования (чек‑лист)
Перед настройкой проверь:
есть куда складывать бэкапы: вторая диск/раздел/хранилище — лучше, чем тот же системный диск;
файловая система бэкап‑раздела поддерживает hard links (ext4/xfs обычно ок);
если бэкапишь удалённую машину — нужен доступ по SSH без пароля (ключи).
Рекомендация админа: держать бэкапы на отдельном диске/томе (например, /backup), чтобы сбой системы не унёс и данные, и бэкап вместе.
Установка
На Ubuntu всё ставится из репозитория.
sudo apt-get update
sudo apt-get install rsnapshot
Скриншот №1 (предложение): вывод установки apt-get install rsnapshot (видно, что пакет установлен).
Понимаем логику каталогов снимков
По умолчанию rsnapshot кладёт всё в:
snapshot_root /var/cache/rsnapshot/
А внутри будут появляться папки вида:
daily.0— самый свежий дневной снимокdaily.1— предыдущий и т.д.
Важно: rsnapshot не «архивирует» данные. Это папки и файлы.
Настройка /etc/rsnapshot.conf
Сначала сделай резервную копию конфига:
sudo cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak
Открой конфиг:
sudo nano /etc/rsnapshot.conf
Скриншот №2 (предложение): открыт файл /etc/rsnapshot.conf в редакторе, видны ключевые строки (snapshot_root, retain, backup).
Где хранить снимки (snapshot_root)
Найди строку snapshot_root и при желании вынеси на отдельный том.
Пример (если у тебя есть смонтированный раздел /backup):
snapshot_root /backup/rsnapshot/
Совет: проверь, что каталог существует и права адекватные:
sudo mkdir -p /backup/rsnapshot
sudo chown root:root /backup/rsnapshot
sudo chmod 755 /backup/rsnapshot
Сколько хранить (retain)
В секции BACKUP LEVELS / INTERVALS задаём «глубину» истории.
Пример умеренной ротации:
retain daily 7
retain weekly 4
retain monthly 6
Как это читать:
7 дневных точек восстановления (примерно неделя назад)
4 недельных (примерно месяц)
6 месячных (полгода)
4.3) Что бэкапить локально (backup)
Если нужно сохранить текущую машину — добавь каталоги:
backup /etc/ localhost/
backup /home/ localhost/
backup /usr/local/ localhost/
Практическая ремарка:
/etc— конфиги/home— данные пользователей/usr/local— «ручные» установки
Не бэкапь бездумно всё подряд. Например,
/proc,/sys,/dev,/runобычно не нужны.
Удалённые бэкапы по SSH (опционально)
Если бэкапишь сервер example.com, rsnapshot может тянуть каталоги по SSH:
backup root@example.com:/etc/ example.com/ exclude=mtab,exclude=core
backup root@example.com:/home/ example.com/ +rsync_long_args=--bwlimit=16,exclude=core
Если SSH порт не 22:
ssh_args -p 22222
Как сделать доступ по ключу (без пароля):
На сервере, где крутится rsnapshot (бэкап‑сервер):
ssh-keygen -t ed25519 -a 64
Передай публичный ключ на целевую машину:
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@example.com
Проверь вход без пароля:
ssh root@example.com 'hostname; whoami'
Скриншот №3 (предложение): успешный ssh root@example.com 'hostname; whoami' без запроса пароля.
Админ‑совет по безопасности: лучше создавать отдельного пользователя для бэкапов (например
backup), ограничивать ему доступ и разрешать только нужные каталоги.
Проверяем конфиг и делаем тестовый прогон
Проверка синтаксиса
sudo rsnapshot configtest
Ожидаем что-то вроде: Syntax OK.
Тест без выполнения (dry-run)
sudo rsnapshot -t daily
Это покажет, что будет сделано, но не будет реально копировать.
Первый реальный запуск
sudo rsnapshot daily
После этого проверь, что появились каталоги снимков:
sudo ls -la /var/cache/rsnapshot
# или
sudo ls -la /backup/rsnapshot
✅ Скриншот №4 (предложение): вывод rsnapshot configtest + rsnapshot -t daily (можно два скрина или один, если помещается).
✅ Скриншот №5 (дополнительно, если хочешь): список каталогов daily.0, daily.1… после первого запуска.
Расписание: включаем автоматический запуск (cron)
На Ubuntu rsnapshot обычно поставляется с готовым cron‑файлом:
/etc/cron.d/rsnapshot
Открой его:
sudo nano /etc/cron.d/rsnapshot
Там часто есть закомментированные примеры. Можно включить примерно так:
0 4 * * * root /usr/bin/rsnapshot daily
0 3 * * 1 root /usr/bin/rsnapshot weekly
0 2 1 * * root /usr/bin/rsnapshot monthly
Это означает:
daily — каждый день в 04:00
weekly — каждый понедельник в 03:00
monthly — 1-го числа в 02:00
Скриншот №6 (предложение): файл /etc/cron.d/rsnapshot с включёнными строками расписания.
Как быстро восстановить файл (самая важная часть!)
Допустим, тебе нужно вернуть файл notes.txt из вчерашнего снимка.
Найди нужную дату/снимок:
самый свежий —
daily.0предыдущий —
daily.1
Скопируй файл обратно:
sudo cp -a /backup/rsnapshot/daily.1/localhost/home/user/notes.txt /home/user/notes.txt
Если бэкап лежит в
/var/cache/rsnapshot, поправь путь.
Админ‑лайфхак: можно восстанавливать не только файл, но и папку целиком.
Практические советы, чтобы бэкап не подвёл
Исключения (exclude) — экономим время и место
Добавляй исключения для «мусора» и временных файлов. Примеры:
кеши
временные каталоги
большие каталоги, которые проще восстановить из других источников
Проверяй права и доступ
Частая причина провалов:
rsnapshot не может прочитать каталог (права)
нет доступа по SSH (ключи/порт/фаервол)
Следи за логами
Если бэкап «молча не работает», смотри системные логи cron и сообщения rsnapshot.
Полезные команды:
grep -i rsnapshot /var/log/syslog | tail -n 50
Делай контрольный тест восстановления
Бэкап без теста восстановления — это иллюзия безопасности. Хотя бы раз:
восстанови пару файлов
убедись, что всё читается
Мини‑шаблон “правильной” конфигурации для старта
Ниже — безопасная отправная точка (адаптируй под себя):
snapshot_root /backup/rsnapshot/
retain daily 7
retain weekly 4
retain monthly 6
backup /etc/ localhost/
backup /home/ localhost/
backup /usr/local/ localhost/
Частые ошибки новичков
Хранят бэкапы на том же диске, что и данные (при падении диска — конец всему).
Делают бэкап «всего подряд», включая
/procи/sys.Не проверяют
configtestи сразу ставят cron.Никогда не проверяют восстановление.
Итог
rsnapshot — отличный вариант, когда нужен простой, прозрачный и экономный бэкап «папками», без сложных серверов и агентов.
