rootユーザーの資格情報を持っており、これらの資格情報を使用してdbバックアップを自動化しています。主な目的は、自動DBバックアップのプロトタイプを作成することです。簡略化のために、のルートを使用しています。スクリプト(私が記事から借りた)次のように次のようになります。root cantがデータベースのlistCollectionsコマンドを実行
Failed: error getting collections for database
mydb
: error runninglistCollections
. Database:mydb
Err: not authorized onmydb
to execute command { listCollections: 1, cursor: {} }
イマイチすべてのデータベースの上にすべてのアクセスを持っているルート:
#!/bin/bash
#Force file syncronization and lock writes
mongo admin -u "root" -p "root" --eval "printjson(db.fsyncLock())"
MONGODUMP_PATH="/usr/bin/mongodump"
MONGO_DATABASE="mydb" #replace with your database name
TIMESTAMP=`date +%F-%H%M`
S3_BUCKET_NAME="mydb" #replace with your bucket name on Amazon S3
S3_BUCKET_PATH="backup/mongo"
# Create backup
$MONGODUMP_PATH -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 database writes
mongo admin -u "root" -p "root" --eval "printjson(db.fsyncUnlock())"
#Delete local files
#rm -rf mongodb-*
は、私は次のエラーを取得していますか?私は少し怖いので、私はルートに何かを置き換えると思っている状況に遭遇するかもしれないが、それは許可を持っていない。これが投稿の質問の根本的な原因です。将来私はこのような驚きを避けたい。
あなたが解決策を見つけたことを嬉しく思います。また、同じことをする[automongobackupスクリプト](https://github.com/micahwedemeyer/automongobackup)も考慮する必要があります。レプリカセットやシャーディングに対処する必要があるときは、非常に効果的です。しかし、あなたはまだs3のアップロードの面を管理する必要があります。 –