#!/bin/bash
########################################
#
#     qa -> dev 手动导入
#
########################################


export QA_HOSTNAME=qa_mongodb002
export DB_NAMES="DoctorLBS dm_bond dm_bond_1 dm_bond_2 dm_bond_pro"
export DUMP_QA_MONGO="mongodump --host ${QA_HOSTNAME} -u admin -p 123456 --gzip --authenticationDatabase admin"
export CONNECT_QA_MONGO="mongo --host ${QA_HOSTNAME} -u admin -p 123456 --authenticationDatabase admin"

export DEV_HOSTNAME=192.168.8.102
export RESTORE_DEV_MONGO="mongorestore --host $DEV_HOSTNAME -u admin -p 123456 --gzip --authenticationDatabase admin"
export CONNECT_DEV_MONGO="mongo --host $DEV_HOSTNAME -u admin -p 123456 --authenticationDatabase admin"
export BACK_DIR="/home/back/temp/"

export LOG="${BACK_DIR}backup.log"


#
# 输出格式化时间
# @param
#
datetime() {
	date "+%Y-%m-%d %H:%I:%S"
}


#
# 检查mongo备份主机是否为从库
# @param
# 
check_status() {
	ret=$(${CONNECT_QA_MONGO} --eval "db.isMaster()" | grep secondary | awk -F '[ ,]+' '{print $3}')
	if [ "$ret" = "true" ]; then
		echo "is slave"
	else
		echo "not slave"
		exit;
	fi
}


#
# 备份操作
# @param
# 
dump_db() {
	for var in $DB_NAMES
	do
		dirname=$BACK_DIR
		if [ ! -d $dirname ]; then
			mkdir $dirname -pv
		fi
		$DUMP_QA_MONGO -d $var -o $dirname
	done
}


#
# 恢复库
# 
#
restore_db() {
	for var in $DB_NAMES
	do
		dirname=$BACK_DIR$var
		echo $dirname
		$RESTORE_DEV_MONGO -d $var --dir $dirname
	done
}


echo $(datetime)
 check_status
echo $(datetime)
 dump_db
echo $(datetime)
restore_db
echo $(datetime)