mongodb数据库恢复脚本

时间:2017-09-20 00:00:10

标签: linux bash mongodb ubuntu mongoose

我在cron中使用下面的sh脚本,以便为我的数据库保存备份。最近我在“db”数据库上添加了一个DbOwner,转储无效。我的问题是,如何添加新的数据库DbOwner用户名和密码,允许在数据库上进行读/写。

非常感谢提前!!

#!/bin/bash

MONGO_DATABASE="db"
APP_NAME="app"
MONGO_USERNAME="test"
MONGO_PASSWORD="test"

MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"
TIMESTAMP=`date +%F-%H%M`
MONGODUMP_PATH="/usr/bin/mongodump"
BACKUPS_DIR="/home/test/backup/$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

1 个答案:

答案 0 :(得分:0)

假设您已使用用户名 test 和密码 test 创建了DbOwner,并授予其readWrite权限

[
  {
    "user" : "test",
    "db" : "db",
    "roles" : [ 
      {
        "role" : "readWrite",
        "db" : "db"
      }
    ]
  }
]

然后你只需要为mongodump指定用户名密码参数:

$MONGODUMP_PATH -u $MONGO_USERNAME -p $MONGO_PASSWORD -d $MONGO_DATABASE