Серверное оборудование для бизнеса — надёжные решения для любых задач Подробнее →
Статья

Restic и Borg: бэкапы которые реально работают

Restic и Borg: бэкапы которые реально работают

Бэкап, который вы не проверяли — это не бэкап, это иллюзия спокойствия. Rsync-скрипты в cron — любимый инструмент тех, кто ещё не терял данные. Restic и BorgBackup — современные инструменты с дедупликацией, шифрованием и встроенной верификацией. Разберём оба и поймём, когда что выбирать.

Что общего у Restic и Borg

Оба инструмента используют content-defined chunking — файлы режутся на блоки, блоки хешируются, одинаковые блоки хранятся один раз. Это называется дедупликацией. Практический результат: если у вас 100 ГБ данных с небольшими ежедневными изменениями, хранить 30 дней бэкапов может стоить всего 110−120 ГБ, а не 3 ТБ как при наивном копировании.

Оба шифруют данные на стороне клиента. Бэкап-сервер видит только зашифрованные блоки — даже если он скомпрометирован, данные в безопасности.

BorgBackup: классика с Pull-моделью

# Инициализировать репозиторий
borg init --encryption=repokey-blake2 
  user@backup-server:/backups/myhost

# Создать снапшот
borg create 
  user@backup-server:/backups/myhost::"{hostname}-{now:%Y-%m-%d}" 
  /home /etc /var/www 
  --exclude /home/*/.cache 
  --compression lz4 
  --stats

# Список снапшотов
borg list user@backup-server:/backups/myhost

# Восстановить
borg extract 
  user@backup-server:/backups/myhost::myhost-2026-03-20 
  home/petrov/important-file.txt

# Проверить целостность
borg check user@backup-server:/backups/myhost

Политика хранения:

borg prune 
  user@backup-server:/backups/myhost 
  --keep-daily=7 
  --keep-weekly=4 
  --keep-monthly=6

Restic: современный конкурент с поддержкой S3

Restic написан на Go, не требует установки на сервере, и поддерживает множество бэкенд-хранилищ из коробки.

# Инициализировать репозиторий на S3
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
restic -r s3:s3.amazonaws.com/my-bucket/backups init

# Создать снапшот
restic -r s3:s3.amazonaws.com/my-bucket/backups 
  backup /home /etc /var/www 
  --exclude-caches

# Список снапшотов
restic -r ... snapshots

# Восстановить конкретный файл
restic -r ... restore latest 
  --target /tmp/restore 
  --include /etc/nginx/nginx.conf

# Проверить данные
restic -r ... check --read-data-subset=10%

# Политика хранения
restic -r ... forget 
  --keep-daily 7 --keep-weekly 4 --keep-monthly 6 
  --prune

Borg vs Restic: что выбрать

  • Borg: если вы делаете бэкапы на выделенный SSH-сервер, нужна зрелость и проверенность временем. Borgmatic (обёртка над Borg) делает конфигурацию ещё проще.
  • Restic: если нужна поддержка S3, MinIO, Backblaze, Azure, SFTP — Restic выигрывает по гибкости. Плюс единый бинарник без зависимостей.

Автоматизация с проверкой

Самое важное — автоматически проверять бэкапы. Не просто создавать, но и убеждаться что они читаются:

#!/bin/bash
# /etc/cron.d/backup
0 2 * * * root restic -r s3:... backup /data && 
           restic -r s3:... check --read-data-subset=5% || 
           echo "BACKUP FAILED" | mail -s "ALERT: backup" ops@example.com

Мониторинг бэкапов

Подключите Healthchecks.io или аналог: бэкап-скрипт пингует URL при успешном завершении, если пинга нет — вам приходит алерт. Это простейший и надёжнейший способ мониторить бэкапы.

2 Ответа

  1. Restic с MinIO как бэкендом — отличная связка для self-hosted, у нас так работает уже полтора года без единой проблемы. Главное не забыть пароль от репозитория — без него данные не достать.

  1. Borgmatic сильно упрощает жизнь по сравнению с голым Borg — конфиг в YAML, хуки, уведомления всё из коробки. Советую попробовать тем кто только начинает с Borg.