您好我有一个简单的脚本,它使用来自远程mongo服务器的shell命令转储mongo db,然后运行shell命令将该db恢复到另一台服务器上的dev db。
脚本位于/ home / ubuntu / mongo,转储位于/ home / ubuntu / mongo / dump
这是我的代码:
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
答案 0 :(得分:2)
找到答案:
"mongorestore --host -db chronotrack --drop dump/chronotrack"