Skip to content

zxcnoname666/MongoBackuper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MongoBackuper 🗄️

GitHub stars GitHub forks GitHub issues GitHub release GitHub last commit License: MIT

Repo Stats

MongoBackuper — лёгкая кроссплатформенная CLI‑утилита на Rust, которая автоматически создаёт «горячие» резервные копии всех ваших баз MongoDB, упорядочивает их по папкам и самостоятельно удаляет устаревшие архивы. Вам остаётся только настроить JSON‑конфиг — остальное произойдёт само 😉


✨ Возможности

  • Автоматические бэкапы с пользовательским интервалом для каждой Mongo‑структуры.
  • Кроссплатформенность — работает на Linux, macOS и Windows (поддерживается установка как Windows‑служба).
  • Гибкая очистка: удаляет резервные копии старше N дней, но всегда сохраняет хотя бы один «золотой» слепок.
  • Нулевая зависимость от mongodump — данные читаются напрямую через оф. Rust‑драйвер mongodb.
  • Чистые логи с цветовым выделением уровней (Info, Warn, Error, Debug).
  • Бинарники в Release — скачал, запустил, забыл.

🚀 Быстрый старт

1. Готовый бинарник

  1. Зайдите в Releases и скачайте архив под свою ОС.
  2. Распакуйте его куда угодно.
  3. Запустите mongo_backuper (или .exe под Windows); при первом запуске появятся директория /MongoBackups и шаблон config.js.

2. Сборка из исходников

# Требуется установленный Rust (edition 2021)
git clone https://github.com/zxcnoname666/MongoBackuper.git
cd MongoBackuper
cargo build --release
# Бинарник появится в target/release/mongo_backuper

Windows‑служба: чтобы установить как service, используйте любой менеджер служб (sc.exe, NSSM, PowerShell) или встроенную поддержку windows-service в коде.


🔧 Конфигурация

Файл config.js (на самом деле чистый JSON) лежит в /MongoBackups. Структура:

[
  {
    "name": "mydb",             // Произвольное имя подпапки для бэкапов
    "url": "mongodb://localhost", // Строка подключения
    "interval": 4,               // Интервал бэкапа в часах
    "removeOld": 30              // Хранить резервные копии N дней
  },
  {
    "name": "mydb2",
    "url": "mongodb://user:pass@host:27017",
    "interval": 12,
    "removeOld": 15
  }
]

Параметры можно задавать отдельно для каждой базы — утилита запустит параллельные задачи.


⏪ Восстановление

Используйте стандартный инструмент mongorestore:

mongorestore --dir=/MongoBackups/Backups/mydb/2025-07-01

🗺️ Структура директорий

/MongoBackups
├── Backups
│   ├── mydb
│   │   ├── 2025-07-01
│   │   │   ├── users.bson
│   │   │   └── orders.bson
│   │   └── ...
│   └── mydb2
└── config.js

📝 Пример логов

[2025‑07‑12 10:00:00] {Info} Backing up the collection "mydb" has been started
[2025‑07‑12 10:00:03] {Debug} Creating Backup of "users" in "mydb"
[2025‑07‑12 10:00:05] {Info} Backup of the collection "mydb" completed

📜 Лицензия

Проект распространяется под лицензией MIT — свободно используйте, улучшайте и присылайте PR‑ы!

About

Create backups of MongoDB

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages