MongoBackuper — лёгкая кроссплатформенная CLI‑утилита на Rust, которая автоматически создаёт «горячие» резервные копии всех ваших баз MongoDB, упорядочивает их по папкам и самостоятельно удаляет устаревшие архивы. Вам остаётся только настроить JSON‑конфиг — остальное произойдёт само 😉
- Автоматические бэкапы с пользовательским интервалом для каждой Mongo‑структуры.
- Кроссплатформенность — работает на Linux, macOS и Windows (поддерживается установка как Windows‑служба).
- Гибкая очистка: удаляет резервные копии старше N дней, но всегда сохраняет хотя бы один «золотой» слепок.
- Нулевая зависимость от mongodump — данные читаются напрямую через оф. Rust‑драйвер
mongodb
. - Чистые логи с цветовым выделением уровней (
Info
,Warn
,Error
,Debug
). - Бинарники в Release — скачал, запустил, забыл.
- Зайдите в Releases и скачайте архив под свою ОС.
- Распакуйте его куда угодно.
- Запустите
mongo_backuper
(или.exe
под Windows); при первом запуске появятся директория/MongoBackups
и шаблонconfig.js
.
# Требуется установленный 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‑ы!