使用python转储和恢复mongodb

时间:2015-02-13 17:03:04

标签: python linux mongodb shell

您好我有一个简单的脚本,它使用来自远程mongo服务器的shell命令转储mongo db,然后运行shell命令将该db恢复到另一台服务器上的dev db。

脚本位于/ home / ubuntu / mongo,转储位于/ home / ubuntu / mongo / dump

这是我的代码:

!在/ usr / bin中/ Python的

import time
import subprocess
import os
import shutil

now=int(time.time())
cmd="mongodump --host  -db chronotrack"
print subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)

cmd="mongorestore --host   -db chronotrack  dump/"
print subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)

#mongorestore --host  --port 3017 --db mongodevdb --username mongodevdb --password YourSecretPwd --drop /backup/dump

这是我的错误:

ERROR: root directory must be a dump of a single database
       when specifying a db name with --db
usage: mongorestore [options] [directory or filename to restore from]
options:
  --help                  produce help message
  -v [ --verbose ]        be more verbose (include multiple times for more
                          verbosity e.g. -vvvvv)
  --version               print the program's version and exit
  -h [ --host ] arg       mongo host to connect to ( <set name>/s1,s2 for sets)
  --port arg              server port. Can also use --host hostname:port
  --ipv6                  enable IPv6 support (disabled by default)
  -u [ --username ] arg   username
  -p [ --password ] arg   password
  --dbpath arg            directly access mongod database files in the given
                          path, instead of connecting to a mongod  server -
                          needs to lock the data directory, so cannot be used
                          if a mongod is currently accessing the same path
  --directoryperdb        if dbpath specified, each db is in a separate
                          directory
  --journal               enable journaling
  -d [ --db ] arg         database to use
  -c [ --collection ] arg collection to use (some commands)
  --objcheck              validate object before inserting
  --filter arg            filter to apply before inserting
  --drop                  drop each collection before import
  --oplogReplay           replay oplog for point-in-time restore
  --keepIndexVersion      don't upgrade indexes to newest version

1 个答案:

答案 0 :(得分:2)

找到答案:

"mongorestore --host  -db chronotrack  --drop dump/chronotrack"