shell脚本对 mongo 备份并导入
来源:原创
时间:2018-10-15
作者:脚本小站
分类:SHELL
#!/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)