Разработка 4 мин чтения

Копия базы каждую ночь: дампы по расписанию в GoBackup

GoBackup снимает дамп базы по расписанию, шифрует и отправляет в удалённое хранилище. Разбираем настройку, лицензию MIT, правило 3-2-1 и то, чего инструмент не делает: восстановление и репликацию.

резервное копированиебазы данныхGoBackupбезопасность
Коротко. GoBackup это открытый инструмент командной строки на Go под лицензией MIT. Каждую ночь он снимает дамп базы (MySQL, PostgreSQL, Redis, MongoDB, SQLite и ещё пять типов), упаковывает, шифрует, кладёт в удалённое хранилище и пишет о результате в Telegram или на почту. Восстанавливать из копий он не умеет, поэтому проверку восстановления нужно настроить отдельно. Без неё копия остаётся предположением.

Копия папки с базой ещё не копия базы

У владельца CRM, интернет-магазина или бота с историей заказов вся ценность лежит в базе данных. Копируют её по-разному. Самый частый способ: ночью забрать папку с файлами базы вместе со всем остальным. Пока база работает, она пишет в эти файлы, и копия, снятая в неудачный момент, может не открыться при восстановлении. Выясняется это в тот день, когда копия нужна.

Правильнее снимать дамп: утилита самой СУБД читает данные через сервер и пишет цельный файл. Копирование папок мы разбирали в статье про Duplicati. Здесь речь о другом: дампы баз по расписанию, с шифрованием и проверкой.

Что такое GoBackup

Репозиторий github.com/gobackup/gobackup живёт с сентября 2017 года, в нём около 540 коммитов и примерно 3 тысячи звёзд. Лицензия указана в файле LICENSE: MIT, правообладатель Jason Lee. Эта лицензия разрешает коммерческое использование, от вас требуется только сохранить текст лицензии. Последний релиз v3.1.1 вышел в июле 2026, последний коммит в основной ветке датирован августом 2026. Релизы выходят нечасто, но проект не заброшен.

Авторы пишут, что сделали его вместо Ruby-утилиты backup/backup, чтобы не тащить на сервер Ruby. Ставится одним бинарником: скриптом установки из README, через brew install gobackup или из Docker-образа. Кроме баз он умеет складывать в архив обычные папки и файлы, а большие архивы нарезать на части.

Как выглядит настройка

Вся настройка живёт в одном YAML-файле, который GoBackup ищет в ~/.gobackup/gobackup.yml или /etc/gobackup/gobackup.yml. Одна «модель» описывает один набор: что копируем, как жмём, чем шифруем, куда кладём и когда. Схема по образцу из README:

models:
  crm:
    schedule:
      every: "1day"
      at: "03:00"
    databases:
      main:
        type: postgresql
        database: crm_production
    compress_with:
      type: tgz
    encrypt_with:
      type: openssl
      password: длинный-пароль
    storages:
      s3:
        type: s3
        bucket: my_app_backup
        keep: 14

Расписание задаётся либо cron-выражением, либо парой «каждый день в такое-то время». Параметр keep у хранилища оставляет только последние N копий, старые удаляются сами. Команда gobackup start запускает демон с расписанием и веб-интерфейсом на порту 2703, gobackup perform делает копию прямо сейчас.

Шифрование и куда класть копию

Шифрование идёт через openssl, по умолчанию aes-256-cbc, и без пароля в конфиге модель просто не сработает. Пароль лежит в конфиге, поэтому права на этот файл закрываем, а сам пароль храним ещё в одном месте отдельно. Потеряли пароль, и копия превратилась в набор случайных байтов.

Хранилищ много: локальная папка, FTP, SFTP, SCP, Amazon S3, Google Cloud Storage, Azure Blob Storage, Backblaze B2, Cloudflare R2, DigitalOcean Spaces, MinIO, WebDAV и ещё несколько китайских облаков. В одной модели можно указать сразу два хранилища, например папку на соседнем диске и внешний сервер по SFTP.

Это ложится на правило 3-2-1. В распространённой формулировке оно звучит так: минимум три копии данных, две из них на разных носителях, одна за пределами площадки. Его приводят среди рекомендаций CISA в документе «Data Backup Options». Рабочая база плюс локальный дамп плюс дамп на внешнем сервере дают как раз три копии, из которых одна уехала с площадки.

Что важно учесть

GoBackup сам базу не читает. Он запускает утилиты СУБД: для PostgreSQL это pg_dump, для MySQL mysqldump. В README стоит «No dependencies», и это про сам бинарник. Утилиты баз должны быть доступны там, где он работает. В официальном Docker-образе клиенты PostgreSQL, MySQL, MongoDB, Redis и SQLite уже установлены, а при установке бинарником на сервер их ставим мы.

Дамп большой базы читает её целиком, поэтому нагружает диск и процессор. Ночное окно обычно спасает, но размер и время снятия надо измерить заранее. В команде mysqldump, которую собирает GoBackup, флага --single-transaction по умолчанию нет, его добавляют через параметр args. Что именно ставить, зависит от движка таблиц.

Ночной дамп не заменяет репликацию. Если сервер упадёт в 17:00, вы вернётесь к состоянию на 03:00, и день заказов придётся восстанавливать вручную. Для сервиса, где такая потеря неприемлема, нужны репликация или непрерывное архивирование, а дамп остаётся запасным слоем под ними.

Команды восстановления в GoBackup нет: в списке команд только perform, start и run. Расшифровать, распаковать и залить дамп в чистую базу надо руками, и этот путь нужно прогнать до аварии.

Веб-интерфейс включён по умолчанию и слушает все адреса сервера, порт 2703. Логин и пароль задаются в секции web конфига, а порт стоит закрыть файрволом от внешнего мира.

Что можно сделать уже сейчас

Первое: выписать, какие базы у вас есть. CRM, сайт, бот, учётная система, и у каждой размер и место, где она лежит. Часто обнаруживается, что у одной из них копии нет вообще.

Второе: поставить GoBackup на тестовую машину и один раз выполнить gobackup perform для одной базы. Посмотреть, сколько весит архив и сколько времени ушло.

Третье: поднять копию на чистом сервере. Расшифровать, распаковать, залить в пустую базу, открыть CRM и проверить, что последние заказы на месте. Засечь время: это и есть ваш реальный срок восстановления.

Четвёртое: подключить уведомление в Telegram и повесить расписание. GoBackup умеет слать сообщение об успехе и об ошибке. Копия, которая молча перестала создаваться три месяца назад, хуже отсутствующей, потому что вы на неё рассчитываете.

Если делать это самим некогда, настроим копии баз и тест восстановления под вашу инфраструктуру. Общую картину по отказоустойчивости мы описывали в статье про мониторинг и бэкапы для малого бизнеса.

Частые вопросы

Можно ли копировать не только базы, но и папки с файлами?

Да, GoBackup умеет складывать в tar-архив произвольные папки и файлы, например загрузки пользователей или конфиги. Для больших файловых деревьев с историей версий удобнее инструменты вроде Duplicati.

Куда класть копии, если нет зарубежных облаков?

Подойдёт любой сервер с доступом по SFTP или SCP, WebDAV-хранилище или свой MinIO. Для S3-совместимых хранилищ в настройках есть параметр endpoint, но совместимость конкретного провайдера проверяем на тестовой копии, прежде чем на него рассчитывать.

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

Сама программа бесплатна. Платить придётся за место под копии и за настройку с проверкой восстановления. Ориентиры по работам есть на странице с ценами.

Коротко о главном

GoBackup закрывает типовую задачу малого бизнеса: ночной дамп базы, шифрование, внешнее хранилище, сообщение в Telegram. Он бесплатный и ставится за вечер. Репликацию он не заменяет. Восстановление из его копий вы запускаете вручную, поэтому репетиция нужна заранее.

Есть CRM, сайт или бот на своём сервере и нет уверенности, что копию базы можно развернуть? Напишите мне в Telegram слово «ДАМП». Посмотрим, что у вас стоит, настроим копии и прогоним восстановление на чистой машине.

Услуги по теме

Что я делаю для бизнеса

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ

Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»

12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.

Готовы обсудить вашу задачу?

Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.

Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх