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)
- shell编程,定期执行脚本cron,crontab,anacron,定时任务
- shell编程,定时运行作业at,atq,atrm,一次性定时任务
- linux的shell,which,type,history,alias,coproc后台模式,协程,子shell
- 发送消息到飞书告警脚本
- shell编程,命令替换$(),<输入重定向,<<内联输入重定向,>输出重定向,>>追加输出重定
- shell编程,处理用户输入,选项和参数的处理getopts,shift,常见的linux命令选项
- shell编程,以后台模式运行进程,bg、fg、jobs -l、nohup、&
- shell编程,获得用户输入read命令
- shell,awk编辑器的使用方法
- shell编程,在/tmp中创建临时文件或目录,mktemp