Облачные хранилища удобны, пока речь не идёт о 200 ГБ бэкапов сервера или о чувствительных данных клиентов. Google Drive и Dropbox сканируют содержимое, а цены растут пропорционально объёму. Есть способ делать бэкапы дешевле, быстрее и с полным контролем — хранить их на своём сервере или у доверенного провайдера.

Почему именно BorgBackup

Borg — это дедуплицирующий архиватор с шифрованием AES-256 и сжатием. Он хранит историю версий, но при этом экономит место: повторяющиеся блоки файлов записываются один раз. Для сервера с сайтом и почтой разница между полным и инкрементальным бэкапом часто составляет 90–95 %.

Ключевые преимущества:

  • Шифрование на стороне клиента. Ключ находится только у вас. Даже если бэкап украдут, прочитать его невозможно.
  • Дедупликация. 30 дневных копий занимают не в 30 раз больше места, а в 2–3.
  • Проверка целостности. Borg сверяет хеш-суммы при каждом запуске. Повреждённый архив он обнаружит сразу.
  • Открытый исходный код. Никаких лицензий, никакого вендор-локина.

Что такое borgmatic и зачем он нужен

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

Пошаговая настройка

1. Установка

На Debian/Ubuntu:

sudo apt install borgbackup borgmatic

На Alpine:

sudo apk add borgbackup borgmatic

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

Репозиторий может находиться на локальном диске, внешнем накопителе или удалённом сервере по SSH.

export BORG_REPO=/mnt/backup/borg
export BORG_PASSPHRase='очень_сложный_пароль_минимум_16_символов'
borg init --encryption=repokey-blake2 $BORG_REPO

Пароль сохраните в менеджер паролей. Без него архив не восстановить.

3. Конфигурация borgmatic

Генерируем шаблон:

sudo generate-borgmatic-config --destination /etc/borgmatic/config.yaml

Минимальный рабочий конфиг для веб-сервера:

location:
  source_directories:
    - /var/www
    - /etc/nginx
    - /var/mail
    - /home

  repositories:
    - /mnt/backup/borg

  exclude_patterns:
    - /var/www/*/cache
    - /home/*/.cache

retention:
  keep_daily: 7
  keep_weekly: 4
  keep_monthly: 6

consistency:
  checks:
    - repository
    - archives
  check_last: 3

Это означает: хранить 7 дневных, 4 недельные и 6 месячных копий. Старые удаляются автоматически.

4. Проверка и первый запуск

sudo borgmatic --verbosity 1 --files

Если ошибок нет — добавляем в cron:

sudo crontab -e
0 3 * * * /usr/bin/borgmatic --syslog-verbosity 1

Каждую ночь в 3:00 система создаст инкрементальный бэкап, проверит его целостность и удалит устаревшие копии.

Удалённое хранение: правило 3-2-1

Идеальная схема — три копии данных, на двух носителях, одна из которых в другом месте. Для малого бизнеса это может выглядеть так:

  1. Локальный бэкап на отдельный диск сервера.
  2. Бэкап на VPS у другого провайдера через SSH.
  3. Критичные данные — на зашифрованном внешнем диске, который хранится офлайн.

Borg прекрасно работает по SSH. Для автоматизации создайте отдельного пользователя с ограниченным доступом и ключом без парольной фразы (только для borg).

Восстановление: самый важный момент

Бэкап, который никто не проверял, — это рулетка. Раз в квартал делайте тестовое восстановление:

# Список архивов
borg list $BORG_REPO

# Монтирование архива для просмотра
mkdir /tmp/restore
borg mount $BORG_REPO::archive-name /tmp/restore

# Полное восстановление
borg extract $BORG_REPO::archive-name var/www

Сколько это стоит

Если бэкап хранится на том же сервере — только место на диске. Для удалённого хранения подойдёт самый дешёвый VPS за 200–400 ₽/мес. Сравните с 10–20 $/мес за облачное хранилище тех же объёмов.

Итог

Borg + borgmatic дают вам полный контроль над резервным копированием: шифрование, ротация, проверка и восстановление — без сторонних сервисов, подписок и сканирования ваших данных. Настройка занимает 30 минут, а работает годами.

Похожие материалы

Если нужна помощь с настройкой бэкапов для вашего сервера — напишите, базовая диагностика бесплатно.