MongoDB 使用技巧记录(九)
一:mongo副本集备份-bash脚本
mongo_bk.sh
#!/bin/bash
#for i in admin player rmdb services
#do
# echo $i >> log.txt
# mkdir -p /data/mongodb/backup/`date +%Y-%m-%d`
# docker exec 98318ac0c9c0 mongodump -h mongo-rs/192.168.102.51:27017,192.168.102.52:27017,192.168.102.53:27017 -d ${i} -o /data/backup/`date +%
Y-%m-%d` -u=root -p=Aa123456 --authenticationDatabase=admin
#done
Curdate=`date +%Y-%m-%d`
#backup all
docker exec -it 98318ac0c9c0 mongodump -h mongo-rs/192.168.102.51:27017,192.168.102.52:27017,192.168.102.53:27017 -o /data/backup/${Curdate} --
oplog -u=root -p=Aa123456 --authenticationDatabase=admin
#tar
tar zcvf mongodb-all-${Curdate}.tar.gz ${Curdate}
#get time value
TimeValue=`docker exec -it 98318ac0c9c0 bsondump /data/backup/${Curdate}/oplog.bson |awk -F\: '{print $8}'|awk -F\, '{print $1}'|head -1`
echo "${TimeValue}" > timevalue.ini
#del
cd /data/mongodb/backup && /bin/rm -rf ${Curdate}
mongo_bk_increment.sh
#!/usr/bin/bash
#curdate
Curdate=`date +%Y-%m-%d`
#dir
mkdir -p /data/mongodb/backup/diff_${Curdate}
#get timevalue
#TimeValue=`docker exec -it 98318ac0c9c0 bsondump /data/backup/inc_${Curdate}/oplog.bson |awk -F\: '{print $8}'|awk -F\, '{print $1}'|head -1`
TimeValue=`cat timevalue.ini`
#backup diff data
docker exec -it 98318ac0c9c0 mongodump -h mongo-rs/192.168.102.51:27017,192.168.102.52:27017,192.168.102.53:27017 -d local -c oplog.rs -q "{\"ts
\":{\"$gt\": {\"$timestamp\":{\"t\":${TimeValue}, \"i\":1}}}}" -o /data/backup/diff_${Curdate} -u=root -p=Aa123456 --authenticationDatabase=admi
n
#tar
tar zcvf mongodb-diff-`date +%Y-%m-%d-%H`.tar.gz diff_${Curdate}
#del
#cd /data/mongodb/backup && /bin/rm -rf diff_${Curdate}