Вики / Базовые команды
restic (бэкапы)
Дедуплицированные шифрованные бэкапы — репозиторий, снимки, восстановление, политика.
restic делает инкрементальные бэкапы с дедупликацией и шифрованием. В отличие от rsync/tar, хранит историю снимков (snapshots) и не дублирует одинаковые блоки. Backend: каталог, SFTP (по SSH), S3 и др.
export RESTIC_REPOSITORY=/backup/repo
export RESTIC_PASSWORD='секрет' # без него не расшифровать — НЕ ТЕРЯЙ!
restic init # создать репозиторий (один раз)
Backend через URL репозитория: sftp:user@host:/backup, s3:https://....
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 # список файлов в снимке
restic check # целостность (метаданные)
restic check --read-data # + перечитать все данные (долго, но надёжно)
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune # retention + чистка
restic stats # размер/дедупликация
restic unlock # снять зависшую блокировку
В cron/systemd-таймере — backup + forget --prune по расписанию. Креды лучше из
--password-file/RESTIC_PASSWORD_FILE, а не в открытом виде.
Забыл RESTIC_PASSWORD
Репозиторий зашифрован — без пароля данные не восстановить. Храни пароль отдельно
и надёжно (самый частый провал бэкапов). Можно добавить второй ключ: restic key add.
Бэкап медленный/большой первый раз
Первый снимок — полный, дальше только изменения (дедуп). Это нормально.
Репозиторий распух
restic forget --keep-* --prune применяет политику хранения и реально удаляет
неиспользуемые блоки (--prune). Без --prune снимки «забываются», но место не
освобождается.
locked repository
Прерванная операция оставила блокировку: restic unlock (убедись, что параллельный
бэкап не идёт).
Проверка бэкапа
restic check (+ периодически --read-data) и тестовый restore — бэкап без
проверенного восстановления не бэкап.
export RESTIC_REPOSITORY=... RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init # один раз
restic backup /path --tag daily # снимок
restic snapshots ; restic restore latest --target /restore
restic forget --keep-daily 7 --keep-weekly 4 --prune # retention
restic check ; restic unlock # целостность / снять лок
См. также
- tar (архивы) — Базовые команды
- rsync (синхронизация) — Базовые команды
- cron и systemd timers — Службы и systemd