UrBackup на Ubuntu 24.04: пошаговая установка
Когда серверов и рабочих станций больше трёх, ручной бэкап каждой машины через cron и rsync превращается в кладбище забытых скриптов: где-то забыли поправить путь, где-то диск переполнился неделю назад, а вы узнали об этом только когда понадобилось восстановление. UrBackup решает эту проблему централизованно — один сервер, веб-консоль, клиенты на каждой машине и автоматические полные/инкрементальные бэкапы как файлового уровня, так и целых образов дисков. Разворачиваем сервер на Ubuntu 24.04 с нуля и настраиваем первый клиент.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое UrBackup и зачем он нужен
UrBackup — open source система резервного копирования с клиент-серверной архитектурой. Сервер хранит расписания, каталог заданий и сами бэкапы; на каждой защищаемой машине (Linux, Windows, macOS) стоит лёгкий клиент, который сам стучится на сервер, забирает задание и передаёт дельту изменений.
Ключевые особенности:
- Файловый и образный бэкап одновременно. Можно бэкапить отдельные каталоги (быстрое восстановление файла) и полный образ диска (быстрое восстановление всей системы через bare-metal restore).
- Инкрементальные бэкапы на уровне блоков для образов и на уровне файлов для файловых заданий — экономит место и трафик.
- Дедупликация — если один и тот же файл лежит на десяти машинах, он физически хранится один раз (при btrfs/ZFS reflink или через встроенный механизм).
- Веб-интерфейс для запуска заданий, просмотра статуса, скачивания файлов из бэкапа без полного восстановления.
- Уведомления по email при провале задания.
Типичный сценарий: у вас парк из 5-30 VPS и пары рабочих станций администраторов. UrBackup-сервер стоит на отдельной машине (желательно не там же, где основная нагрузка) и раз в сутки/несколько часов забирает бэкапы у всех клиентов.
Требования к серверу и подготовка
Для сервера бэкапов главное — не CPU и не RAM, а дисковое пространство и скорость записи. Инкрементальные бэкапы всё равно означают постоянную дозапись новых блоков.
Минимальные ориентиры для парка из 10-15 машин:
| Ресурс | Минимум | Комфортно |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 2 ГБ | 4-8 ГБ |
| Диск под хранилище | от 200 ГБ | 1 ТБ+, желательно отдельный том |
| Файловая система | ext4 | btrfs или ZFS (для reflink-дедупликации) |
Закладывайте отдельный диск большого объёма под /var/urbackup — это упростит масштабирование хранилища без переустановки системы. Держите сервер бэкапов отдельно от продуктивных нагрузок: если он разделяет ресурсы с основным приложением, пиковая нагрузка на бэкап может замедлить и то, и другое.
Проверьте базовые вещи перед установкой:
lsb_release -a
df -h
free -h
Убедитесь, что система обновлена:
sudo apt update && sudo apt upgrade -y
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверУстановка UrBackup Server на Ubuntu 24.04
Официальный проект поддерживает PPA-репозиторий, но на практике для Ubuntu 24.04 (noble) стабильнее ставить через готовый deb-пакет с сайта проекта, если PPA ещё не обновился под релиз. Проверим оба варианта — начните с PPA, а если пакет не находится, переходите к прямой загрузке deb.
Вариант 1 — через PPA:
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:uroni/urbackup
sudo apt update
sudo apt install -y urbackup-server
Вариант 2 — прямой deb-пакет (актуальную ссылку берите со страницы загрузок проекта, версия и имя файла со временем меняются):
cd /tmp
wget https://hndl.urbackup.org/Server/latest/UrBackup%20Server%20linux_amd64.deb -O urbackup-server.deb
sudo apt install -y ./urbackup-server.deb
Второй способ надёжнее сразу после выхода новой Ubuntu — PPA иногда отстаёт на несколько недель. После установки сервис должен подняться автоматически:
sudo systemctl status urbackupsrv
sudo systemctl enable urbackupsrv
По умолчанию сервер слушает:
- 55414/tcp — веб-интерфейс (HTTP)
- 55415/tcp — веб-интерфейс (HTTPS, самоподписанный сертификат)
- 35623/udp — обнаружение клиентов в локальной сети
- 55413/tcp — приём соединений от клиентов
Проверьте, что порты слушаются:
sudo ss -tulpn | grep -E '55413|55414|55415'
Настройка хранилища, файрвола и веб-интерфейса
Хранилище бэкапов по умолчанию — /var/urbackup. Если у вас отдельный диск, смонтируйте его туда до первого запуска сервиса, либо перенесите путь через настройки в веб-интерфейсе (Settings → General → Storage path) после установки.
Пример монтирования отдельного диска под бэкапы:
sudo mkfs.ext4 /dev/sdb
sudo mkdir -p /var/urbackup
echo '/dev/sdb /var/urbackup ext4 defaults 0 2' | sudo tee -a /etc/fstab
sudo mount -a
sudo chown urbackup:urbackup /var/urbackup
Если планируете дедупликацию через reflink (экономит место при похожих файлах на разных клиентах), используйте btrfs или XFS с поддержкой reflink вместо ext4 — на ext4 UrBackup дедуплицирует через хэш-таблицу, что медленнее на больших объёмах.
Открываем нужные порты в UFW. Если файрвол ещё не настроен на сервере — сначала разверните базовую защиту через UFW, а затем добавьте правила под UrBackup:
sudo ufw allow 55414/tcp comment 'UrBackup web UI'
sudo ufw allow 55415/tcp comment 'UrBackup web UI HTTPS'
sudo ufw allow 55413/tcp comment 'UrBackup client connections'
sudo ufw allow 35623/udp comment 'UrBackup discovery'
sudo ufw status
Если сервер бэкапов торчит наружу (клиенты подключаются через интернет, а не только из локальной сети), обязательно ограничьте доступ к веб-интерфейсу по IP или заведите его за VPN — сам по себе UrBackup не рассчитан на публичную экспозицию панели без дополнительной защиты.
Теперь настроим саму панель. Откройте http://IP-сервера:55414 в браузере. При первом заходе UrBackup предложит создать администратора — обязательно сделайте это сразу, панель без пароля по умолчанию открыта всем.
Основные разделы, которые стоит настроить перед добавлением клиентов:
- Settings → General — глобальные интервалы бэкапов (по умолчанию: полный файловый раз в 30 дней, инкрементальный каждые сутки).
- Settings → Mail — SMTP для уведомлений о провалах заданий. Без этого вы узнаете о сломанном бэкапе только когда он понадобится.
- Settings → Backup Storage Path — если не настроили том заранее, задайте путь здесь.
Пример базовых интервалов файлового бэкапа в интерфейсе:
- Full file backup: каждые 30 дней
- Incremental file backup: каждые 24 часа
- Image backup (опционально): раз в неделю
Для критичных серверов баз данных интервал инкрементального бэкапа стоит сократить до 4-6 часов — но учитывайте, что это нагрузка на дисковый I/O клиента в момент снятия.
Если хотите получать сообщения о сбоях не только на почту, но и понимать состояние диска под хранилищем бэкапов заранее — держите отдельный мониторинг заполнения диска на самом сервере UrBackup. Хранилище бэкапов растёт незаметно, и переполненный диск — самая частая причина "тихого" провала всех заданий разом.
Установка и подключение клиента на Linux
На каждой защищаемой машине ставится клиент urbackup-client. Для Debian/Ubuntu он тоже доступен через PPA или deb-пакет:
sudo add-apt-repository ppa:uroni/urbackup
sudo apt update
sudo apt install -y urbackup-client
После установки клиент по умолчанию пытается найти сервер через UDP-broadcast в локальной сети (порт 35623). Если сервер и клиент в разных сетях (типичный случай для арендованных VPS в разных дата-центрах), задайте сервер явно:
sudo urbackupclientctl add-backupserver http://IP-сервера:55414 --authkey ВАШ_КЛЮЧ
Ключ авторизации (authkey) генерируется на сервере при создании клиента вручную через веб-интерфейс: Add new client → указываете имя → сервер выдаёт ключ. Это важно для VPS-парка без общей локальной сети — автообнаружение там не работает, только явная регистрация по ключу.
Проверить статус клиента:
sudo systemctl status urbackupclientbackend
Настройка каталогов для файлового бэкапа задаётся на самом клиенте в файле:
sudo nano /etc/urbackup/data/settings.cfg
Ключевой параметр — список путей для бэкапа:
backup_dirs=/etc;/var/www;/home
Или через интерфейс: на сервере откройте карточку клиента → вкладка "Backup Directories" и укажите пути там же, без правки конфига руками — так изменения сразу видны на сервере и не потеряются при переустановке клиента.
Восстановление данных: файлы и полные образы
Смысл бэкапа — не сам факт его существования, а проверенное восстановление. Не откладывайте тестовый restore на момент, когда он реально понадобится.
Восстановление отдельных файлов — самый частый сценарий. В веб-интерфейсе откройте карточку клиента → вкладка "Backups" → выберите точку восстановления → "Browse files". Можно скачать один файл, папку целиком (в виде zip) или примонтировать бэкап как сетевой диск через встроенный веб-сервер для просмотра содержимого без скачивания.
Восстановление полного образа делается через загрузочный ISO/USB UrBackup Restore CD со страницы проекта. Загружаетесь с него на целевой машине, указываете адрес UrBackup-сервера, выбираете клиента и точку восстановления образа. Процесс разворачивает посекторный образ обратно на диск — подходит для восстановления после отказа железа или миграции на новое оборудование.
Для баз данных продумайте консистентность отдельно: файловый снимок PostgreSQL или MySQL "на лету" без дампа может дать несогласованную копию. Правильный подход — pre-backup скрипт на клиенте, который перед заданием снимает pg_dump или mysqldump в отдельный файл, а UrBackup бэкапит уже готовый дамп:
sudo nano /etc/urbackup/data/scripts/pre_filebackup
#!/bin/bash
pg_dump -U postgres mydb > /var/backups/mydb_$(date +%F).sql
exit 0
Сделайте скрипт исполняемым:
sudo chmod +x /etc/urbackup/data/scripts/pre_filebackup
Если для баз данных вам нужен более специализированный подход с шифрованием и дедупликацией на уровне блоков, посмотрите на установку BorgBackup как дополнение или альтернативу для конкретных критичных БД — UrBackup хорош как центральный узел для всего парка, а Borg удобен для точечных, сильно сжатых архивов с версионированием.
HTTPS-доступ и безопасность панели
Встроенный HTTPS UrBackup на порту 55415 использует самоподписанный сертификат — браузер будет ругаться, и это неудобно для регулярной работы. Если панель нужна с удобным доменным именем и валидным сертификатом, поставьте перед ней реверс-прокси.
Разверните Caddy с автоматическим SSL и настройте проксирование на локальный порт UrBackup:
backup.example.com {
reverse_proxy 127.0.0.1:55414
}
Caddy сам получит сертификат Let's Encrypt и обновит его без вашего участия. После этого закройте прямой внешний доступ к 55414/55415 в UFW, оставив их доступными только с localhost, а наружу — только 443 через Caddy:
sudo ufw delete allow 55414/tcp
sudo ufw delete allow 55415/tcp
sudo ufw allow 443/tcp
Дополнительно смените пароль администратора на сложный (Settings → Users), включите двухфакторную защиту, если она доступна в вашей версии, и ограничьте доступ к панели по IP на уровне Caddy или файрвола, если админов немного и они заходят с известных адресов.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Чем UrBackup отличается от Restic или BorgBackup?
UrBackup — готовая клиент-серверная система с веб-интерфейсом и агентами на каждой машине, рассчитанная на управление парком из нескольких серверов из одной точки. Restic и Borg — консольные инструменты для точечного бэкапа одной машины в репозиторий, без централизованной панели. Для 2-3 серверов Borg или Restic проще, для десятка и больше — UrBackup экономит время за счёт единой консоли.
Можно ли бэкапить Windows-машины тем же сервером?
Да, клиент UrBackup есть под Windows и умеет снимать образы через VSS (Volume Shadow Copy) без остановки системы — стандартный сценарий для смешанного парка Linux/Windows.
Сколько места реально нужно под хранилище бэкапов?
Ориентировочно закладывайте объём, равный сумме данных всех клиентов на первый полный бэкап, плюс 20-40% на инкременты за пару месяцев — точная цифра зависит от частоты изменения файлов и дедупликации, мониторьте заполнение и растите том по факту.
Что будет, если сервер бэкапов недоступен, когда клиент должен снять задание?
Клиент попробует снова при следующем интервале или при восстановлении связи — задания не теряются молча, но при долгом простое сервера накапливается разрыв, поэтому уведомления о провалах через SMTP настраивать обязательно.
Нужен ли отдельный физический сервер под UrBackup, или хватит VPS?
Достаточно ещё одной VPS под сервер бэкапов — ключевое требование не CPU, а объём и надёжность диска. Если основной парк на арендованных серверах в одном дата-центре, логично держать сервер бэкапов в другом, чтобы авария у одного провайдера не унесла и продукцию, и её резервные копии одновременно.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →