创建MongoDB备份并上传到Amazon S3
我在尝试创建MongoDB的备份,并把它上传到亚马逊的S3存储上。这是我的脚本。
#!/bin/bash
#Force file syncronization and lock writes
mongo admin --eval "printjson(db.fsyncLock())"
MONGODUMP_PATH="/home/ubuntu/backup/mongodb"
MONGO_HOST="122.248.238.32"
MONGO_PORT="27017"
MONGO_DATABASE="eb"
TIMESTAMP=`date +%F-%H%M`
S3_BUCKET_NAME="MongodbBackup"
S3_BUCKET_PATH="mongodb-backups"
# Create backup
$MONGODUMP_PATH -h $MONGO_HOST:$MONGO_PORT -d $MONGO_DATABASE
# Add timestamp to backup
mv dump mongodb-$HOSTNAME-$TIMESTAMP
tar cf mongodb-$HOSTNAME-$TIMESTAMP.tar mongodb-$HOSTNAME-$TIMESTAMP
# Upload to S3
s3cmd put mongodb-$HOSTNAME-$TIMESTAMP.tar s3://$S3_BUCKET_NAME/$S3_BUCKET_PATH/mongodb-$HOSTNAME-$TIMESTAMP.tar
#Unlock databases writes
mongo admin --eval "printjson(db.fsyncUnlock())"
当我运行这个脚本时,得到了这样的反馈
MongoDB shell version: 2.4.6
connecting to: admin
{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}
mv: cannot stat `dump': No such file or directory
tar: mongodb-ip-10-145-167-183-2014-06-02-1055: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
WARNING: Module python-magic is not available. Guessing MIME types based on file extensions.
mongodb-ip-10-145-167-183-2014-06-02-1055.tar -> s3://MongodbBackup/mongodb-backups/mongodb-ip-10-145-167-183-2014-06-02-1055.tar [1 of 1]
10240 of 10240 100% in 1s 9.55 kB/s done
MongoDB shell version: 2.4.6
connecting to: admin
{ "ok" : 1, "info" : "unlock completed" }
我该如何正确地创建备份并上传到S3呢?
1 个回答
1
把
$MONGODUMP_PATH -h $MONGO_HOST:$MONGO_PORT -d $MONGO_DATABASE
替换成
cd $MONGODUMP_PATH
mongodump -h $MONGO_HOST:$MONGO_PORT -d $MONGO_DATABASE