Restic на VPS: зашифрованные бэкапы на S3 и диск — иллюстрация к статье Storm Cloud Blog, категория DevOps
Restic на VPS: зашифрованные бэкапы на S3 и диск — иллюстрация к статье Storm Cloud Blog, категория DevOps
DevOps·2 мин··

Restic на VPS: зашифрованные бэкапы на S3 и диск

Настройка Restic на VPS: инкрементальные бэкапы, шифрование, S3/MinIO, cron и восстановление. Практика правила 3-2-1.

Краткий ответ: Restic — инкрементальные зашифрованные бэкапы в один репозиторий (локально, S3, MinIO). Установите бинарник, инициализируйте repo, настройте cron — данные защищены по правилу 3-2-1.

tar.gz бэкапы не масштабируются: каждый полный архив — гигабайты и часы. Restic хранит только изменения и шифрует end-to-end.


Restic vs rsync vs mysqldump

Restic rsync mysqldump
Инкрементальный Да Да (файлы) Нет
Шифрование Да Нет Нет
Дедупликация Да Нет Нет
S3/облако Да Через rclone Вручную

Установка

curl -L https://github.com/restic/restic/releases/latest/download/restic_linux_amd64.bz2 | bunzip2
sudo mv restic_linux_amd64 /usr/local/bin/restic
sudo chmod +x /usr/local/bin/restic

Инициализация репозитория

Локально:

export RESTIC_PASSWORD="STRONG_REPO_PASSWORD"
restic init --repo /backup/restic-repo

На MinIO S3:

export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export RESTIC_REPOSITORY=s3:https://s3.example.com/backups/restic
restic init

Первый бэкап

restic backup /var/www /etc/nginx /home/deploy
restic snapshots

Исключения:

restic backup /var/www --exclude='*.log' --exclude='node_modules'

Автоматизация cron

# /etc/cron.d/restic-backup
0 3 * * * deploy RESTIC_PASSWORD=xxx /usr/local/bin/restic -r /backup/restic-repo backup /var/www /etc 2>&1 | logger -t restic

Проверка:

restic check
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Восстановление

restic snapshots
restic restore latest --target /restore-test
restic restore abc123def --target /restore --include /var/www/app

Перед restore на production — тест на staging VPS (почасовая аренда).


Бэкап PostgreSQL/MySQL

pg_dump mydb | restic backup --stdin --stdin-filename mydb.sql

Или dump в файл → restic backup. См. PostgreSQL tuning и MariaDB.


Мониторинг

  • Алерт если cron не отработал — Uptime Kuma
  • restic stats –mode raw-data
  • Логи в journalctl

Итог

Restic — лучший выбор для encrypted off-site бэкапов на VPS. Один инструмент для файлов, конфигов и дампов БД.

VPS + MinIOStormNet Cloud.

Частые вопросы

Restic или rsync для бэкапов VPS?

Restic — для инкрементальных зашифрованных бэкапов в S3/облако. rsync — для зеркалирования файлов без шифрования и дедупликации.

Куда хранить Restic-репозиторий?

Лучше off-site: S3, MinIO на втором VPS или облако провайдера. Локальный диск — только как часть правила 3-2-1, не единственная копия.