BorgBackup — это приложение для резервного копирования файлов с поддержкой дедупликации.
Borg доступен под все популярные Linux\Unix дистрибутивы.
Для CentOS 7 приложение доступно в EPEL репозитории:
yum -y install epel-release
yum -y install borgbackup
В качестве примера настроим резервное копирование для сайта tinyops.ru.
Файлы сайта расположены в каталоге /var/www/tinyops.ru/html
.
Borg использует понятие репозитория — это хранилище резервных копий. Создадим для нашего сайта отдельный репозиторий, без шифрования данных:
borg init --encryption=none /mnt/backups/tinyops.ru
Смотрим информацию по репозиторию:
[root@server ~]# borg info /mnt/backups/tinyops.ru
Repository ID: df114c32702740844c3f05b38e0192d68af0670e4a1a381214394186fd1537eb
Location: /mnt/backups/tinyops.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/tinyops.ru::site /var/www/tinyops.ru/html
Внутри каждого репозитория может храниться множество архивов. Например, мы можем отдельно архивировать папку uploads для сайта.
Поэтому в команде мы указали имя архива — site
. Для отдельного архивирования uploads можно было указать вот так:
borg create /mnt/backups/tinyops.ru::uploads /var/www/tinyops.ru/html/uploads
После создания копия смотрим изменения в репозитории:
borg list /mnt/backups/tinyops.ru/site
site-2020-06-16T03:25:02 Tue, 2020-06-16 03:25:03 [f0ebe8acf744ea65b2f340657fe6c251d86620284aad008b55afc7dd2a65a7c3]
Видим что появилась резервная копия. Теперь можем посмотреть общую информацию о репозитории:
[root@server backups-sites]# borg info /mnt/backups/tinyops.ru
Repository ID: df114c32702740844c3f05b38e0192d68af0670e4a1a381214394186fd1537eb
Location: /mnt/backups/tinyops.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КБ.
[root@server]# crontab -e
0 1 * * * borg create /mnt/backups/tinyops.ru::site /var/www/tinyops.ru/html
Архив будет создаваться каждый день в час ночи.