restic restore latest --target /restoreвосстановить последний снимок
restic forget --keep-daily 7 --keep-weekly 4 --pruneприменить политику хранения
restic checkпроверить целостность репозитория
restic unlockснять зависшую блокировку
Обзор
restic делает инкрементальные бэкапы с дедупликацией и шифрованием. В
отличие от rsync/tar, хранит историю снимков (snapshots) и не дублирует
одинаковые блоки. Backend: каталог, SFTP (по SSH), S3 и др.
bash
export RESTIC_REPOSITORY=/backup/repo
export RESTIC_PASSWORD='секрет' # без него не расшифровать — НЕ ТЕРЯЙ!
restic init # создать репозиторий (один раз)
Backend через URL репозитория: sftp:user@host:/backup, s3:https://....
Ключи
7
--prune у forget — не косметика: без него забытые снимки перестают быть
видимыми, но занятые ими блоки остаются на диске, и место не освобождается.
--tag при backup и фильтр --tag при snapshots/forget держат разные
графики бэкапов (daily/weekly) в одном репозитории раздельными.
Ключ
Что делает
Пример
--tagTAG
Пометить снимок тегом; фильтровать по нему в snapshots/forget.
restic backup /data --tag daily
--keep-dailyN
Сколько последних ежедневных снимков сохранить при forget.
restic forget --keep-daily 7
--prune
Реально удалить данные забытых снимков, а не только снять с них метку. опасно
restic forget --keep-daily 7 --prune
--targetDIR
Куда восстановить файлы при restore.
restic restore latest --target /restore
--exclude-fileFILE
Список путей и шаблонов, которые не включать в снимок.
restic backup /data --exclude-file=excl.txt
--read-data
При check перечитать все данные, а не только метаданные — медленно, но надёжно.
restic check --read-data
--one-file-system
Не заходить на другие смонтированные файловые системы.
restic backup / --one-file-system
Ничего не найдено. Попробуй запрос короче.
Рецепты
2
Бэкап и восстановление
bash
restic backup /etc /var/www # снимок
restic backup /data --exclude-file=excl.txt --tag weekly --one-file-system
restic snapshots # список (ID, дата, хост, пути, теги)
restic snapshots --tag weekly --host web1 # фильтр
restic restore latest --target /restore # восстановить последний
restic restore <ID> --target /restore --include /etc/nginx # частично
restic mount /mnt/backup # смонтировать и ходить по файлам (FUSE)
restic diff <ID1> <ID2> # что изменилось между снимками
restic ls latest /etc # список файлов в снимке
В cron/systemd-таймере — backup + forget --prune по расписанию. Креды лучше из
--password-file/RESTIC_PASSWORD_FILE, а не в открытом виде.
Неполадки
5
СимптомПричина и решение
Забыл RESTIC_PASSWORD
Репозиторий зашифрован — без пароля данные не восстановить. Храни пароль отдельно
и надёжно (самый частый провал бэкапов). Можно добавить второй ключ: restic key add.
Бэкап медленный/большой первый раз
Первый снимок — полный, дальше только изменения (дедуп). Это нормально.
Репозиторий распух
restic forget --keep-* --prune применяет политику хранения и реально удаляет
неиспользуемые блоки (--prune). Без --prune снимки «забываются», но место не
освобождается.
locked repository
Прерванная операция оставила блокировку: restic unlock (убедись, что параллельный
бэкап не идёт).
Проверка бэкапа
restic check (+ периодически --read-data) и тестовый restore — бэкап без
проверенного восстановления не бэкап.
Опасно
forget --prune необратимо удаляет данные снимков, не подпадающих под
политику хранения — без --prune снимки только скрываются из списка. Проверь
условия --keep-* заранее (restic forget --keep-daily 7 --dry-run без
--prune покажет, что будет забыто). Потеря RESTIC_PASSWORD равносильна
потере всего репозитория: расшифровать данные без него нельзя, даже имея
полный доступ к файлам на диске.
См. также
rsync — Эффективное копирование и бэкап — только изменения, по сети и локально.
tar — Создание и распаковка архивов tar/gz/xz; бэкап каталогов.
cron — Запуск задач по расписанию — классический cron и современные systemd-таймеры.