Как настроить резервное копирование файлов в Linux с помощью Borg Backup

0
242

BorgBackup — это приложение для резервного копирования файлов с поддержкой дедупликации.

Основные возможности

  1. Эффективное хранение
  2. Каждый файл разбивается на порции (chunks) и добавляется в репозиторий резервных копий если его там ещё не присутствовало.
  3. Скорость работы
  4. Приложение написано на Python, но критические участки реализованы на C/Python. Используется кэширование и индексирование данных.
  5. Поддержка сжатия
  6. Поддерживаются четыре вида сжатия данных: lz4, zstd, zlib и lzma.
  7. Поддержка шифрования
  8. Данные можно зашифровать с помощью 256-битного AES, целостность данных проверяется с помощью HMAC-SHA256.
к содержанию ↑

Установка

Авторы Borg позаботились о своих пользователях, поэтому он доступен под все популярные Linux\Unix платформы.

Для CentOS 7 приложение доступно в EPEL репозитарии:

yum -y install epel-release
yum -y install borgbackup

Настройка архивирования

В качестве примера настроим резервное копирование для сайта test.ru. Файлы сайта расположены в каталоге /var/www/test.ru/html.

Borg использует понятие репозитория — это хранилище резервных копий. Создадим для нашего сайта отдельный репозиторий, без шифрования данных:

borg init --encryption=none  /mnt/backups/test.ru

Смотрим информацию по репозиторию:

[[email protected] ~]# borg info /mnt/backups/test.ru
Repository ID: df114c32702740844c3f05b38e0192d68af0670e4a1a381214394186fd1537eb
Location: /mnt/backups/test.ru
Encrypted: No
Cache: /root/.cache/borg/df114c32702740844c3f05b38e0192d68af0670e4a1a381214394186fd1537eb
Security dir: /root/.config/borg/security/df114c32702740844c3f05b38e0192d68af0670e4a1a381214394186fd1537eb
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
All archives:                    0 B                  0 B                  0 B

                       Unique chunks         Total chunks
Chunk index:                       0                    0

Видим что пока пусто. Сделаем первую резервную копию:

borg create /mnt/backups/test.ru::site /var/www/test.ru/html

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

borg create /mnt/backups/test.ru::uploads /var/www/test.ru/html/uploads

После создания копия смотрим изменения в репозитории:

borg list /mnt/backups/test.ru/site
site-2020-06-16T03:25:02 Tue, 2020-06-16 03:25:03 [f0ebe8acf744ea65b2f340657fe6c251d86620284aad008b55afc7dd2a65a7c3]

Видим что появилась резервная копия. Теперь можем посмотреть общую информацию о репозитории:

[[email protected] backups-sites]# borg info /mnt/backups/test.ru
Repository ID: df114c32702740844c3f05b38e0192d68af0670e4a1a381214394186fd1537eb
Location: /mnt/backups/test.ru
Encrypted: No
Cache: /root/.cache/borg/df114c32702740844c3f05b38e0192d68af0670e4a1a381214394186fd1537eb
Security dir: /root/.config/borg/security/df114c32702740844c3f05b38e0192d68af0670e4a1a381214394186fd1537eb
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
All archives:              644.93 kB            277.42 kB            277.42 kB

                       Unique chunks         Total chunks
Chunk index:                     133                  133

Как мы видим, общий объём данных (Original size) — 644КБ, хранится на диске (Deduplicated size) — 277КБ.

к содержанию ↑

Архивирование по расписанию

[[email protected]]# crontab -e

0 1 * * * borg create /mnt/backups/test.ru::site /var/www/test.ru/html

Архив будет создаваться каждый день в час ночи. Для надёжности рекомендуется настроить мониторинг.

Оставьте свой ответ