ms-dred
@ms-dred
Вечно что то не то и что то не так...

Как исключить определенные коллекции при создании дампа базы данных?

Есть старый скрипт, найденный на просторах интернета, он создает резервную копию базы данных mongodb
#!/bin/bash
 
MONGO_DATABASE="collection"
APP_NAME="Name"

MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"
TIMESTAMP=`date +%F-%H%M`
MONGODUMP_PATH="/usr/bin/mongodump"
BACKUPS_DIR="/var/www/backups/$APP_NAME"
BACKUP_NAME="$APP_NAME-$TIMESTAMP"
 
# mongo admin --eval "printjson(db.fsyncLock())"
# $MONGODUMP_PATH -h $MONGO_HOST:$MONGO_PORT -d $MONGO_DATABASE
$MONGODUMP_PATH -d $MONGO_DATABASE
# mongo admin --eval "printjson(db.fsyncUnlock())"
 
mkdir -p $BACKUPS_DIR
mv dump $BACKUP_NAME
tar -zcvf $BACKUPS_DIR/$BACKUP_NAME.tgz $BACKUP_NAME
rm -rf $BACKUP_NAME

find $BACKUPS_DIR -name "*.tgz" -mtime +7 -type f -delete


Проблема в том что у меня есть ресурсоемкие коллекции в которых собирается некоторая статистика и мне не нужно их дампить, так же как и коллекцию с сессиями, как можно игнорировать при создании дампа эти коллекции?
sessions
analytics
counts

Или быть может есть какие то более гибкие скрипты для дампа?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
--excludeCollection <имя>
Можно перечислить несколько.

$MONGODUMP_PATH -d $MONGO_DATABASE --excludeCollection sessions --excludeCollection analytics --excludeCollection counts


p.s. https://docs.mongodb.com/manual/reference/program/...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы