Bup — система бэкапа с хранением данных в формате git packfile

Я узнал и попробовал программу bup, про которую раньше не слышал. Она мне понравилась и показалась очень полезной, поэтому решил написать и поделиться с вами. Bup использует тот же алгоритм, что и rsync для деления файлов на фрагменты и проверки контрольных сумм, так что производительность у него на хорошем уровне.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Особенность bup в том, что она использует гитовский формат хранения данных в репозиториях. При этом не возникает проблем с огромным числом файлов и большим объёмом. Плюс такого хранения в том, что легко создаются инкрементные копии, причём данные могут быть совсем разные с разных хостов. Но если они одинаковые, то станут частью инкрементной копии. Это хорошо экономит дисковое пространство.

Bup умеет делать как локальные бэкапы, так и ходить за ними на удалённые серверы по SSH. Есть простенький встроенный веб интерфейс. Всё управление через консоль. Это в первую очередь консольный инструмент для самостоятельного велосипедостроения. Показываю, как его установить на Debian.

# git clone https://github.com/bup/bup
# cd bup
# git checkout 0.33
# apt-get build-dep bup
# apt install python3-pip
# pip install tornado
# make
# make install

Теперь надо выполнить инициализацию репозитория. По умолчанию, он будет в ~/.bup. Задать его можно через переменную окружения BUP_DIR. Добавим её сразу в .bashrc и применим изменения:

export BUP_DIR=/mnt/backup
# source ~./bashrc

Инициализируем репозиторий:

# bup init

Создаём индекс бэкапа. Для примера возьму директорию /etc на сервере:

# bup index /etc

Делаем бэкап, назвав его etc с помощью параметра -n:

# bup save -n local-etc /etc

Посмотреть список репозиториев, файлов или бэкапов можно вот так:

# bup ls
# bup ls local-etc
# bup ls local-etc/2023-01-31-190941

Бэкап удалённой машины делается примерно так:

# bup index /etc
# bup save -r SERVER -n backupname /etc

Доступ к серверу надо настроить по ключам.

Восстановление данных:

# bup restore -C ./dest local-etc/latest/etc

Восстановили директорию /etc с ветки latest бэкапа local-etc в директорию /.dest. Соответственно, выбирая разные ветки, вы восстанавливаете данные с того или иного инкрементного бэкапа.

Очень необычная для бэкапов, но при этом весьма удобная схема хранения и работы с данными, точно так же, как с обычными git репозиториями.

У bup есть простенький веб интерфейс, через который можно посмотреть и скачать файлы. По умолчанию он запускается на localhost, поэтому явно указываю интерфейс и порт:

# bup web 172.25.84.75:8080

Если кто-то пользуется bup, поделитесь впечатлением. Программа старая и известная, но я про неё ранее не слышал и не пользовался.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

Один комментарий

  1. Имярек

    Ранее пакет входил по дефолту в KDE (KDE Neon, Kubuntu) до момента обновления плазмы до qt6. Причём было очень удобно - хороший gui, планировщик, куча настроек, всё работало как часы, в одном окне была и возможность посмотреть все настройки, и восстановить файлы (без консоли, что очень удобно в случае инкрементных копий)....

    Но пришло обновление до багованного qt6. RIP bup
    В надежде на возващение его GUI осваиваю консольную версию, спасибо за статью!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar