Skip to content

Instantly share code, notes, and snippets.

@haiyon
Last active January 12, 2017 14:28
Show Gist options
  • Select an option

  • Save haiyon/0d1a54fa4e08a58af7748289af508624 to your computer and use it in GitHub Desktop.

Select an option

Save haiyon/0d1a54fa4e08a58af7748289af508624 to your computer and use it in GitHub Desktop.
mongo dump/restore
# @A Shen
#!/bin/bash
## 基本配置
# 数据来源
base_host="host_url"
base_db="db_name"
# 导入目标
dev_host="host_url"
dev_db="db_name"
# 检查mongo 导入导出命令
checkCommond() {
# echo '------ check commond ------'
which mongodump &> /dev/null;
[ $? -ne 0 ] && { echo 'mongodump command not found.' && exit;}
which mongorestore &> /dev/null;
[ $? -ne 0 ] && { echo 'mongorestore command not found.' && exit;}
echo '------ check commond ok ------'
}
checkCommond
# 备份基础表数据
dbDump() {
echo "------ 备份 ${base_host} 中 ${base_db} 数据------"
select dumpType in all base;
do
case ${dumpType} in
all )
mongodump -h ${base_host} -d ${base_db} -o ./ ;
echo '------ 全部备份完成 ------' && exit;
;;
base )
# 枚举常量
mongodump -h ${base_host} -d ${base_db} -c dbenums -o ./
[ $? -ne 0 ] && { echo 'dbenums dump error!' && exit;}
echo '------ 枚举常量 备份完成 ------'
# 部门
mongodump -h ${base_host} -d ${base_db} -c orgs -o ./
[ $? -ne 0 ] && { echo 'orgs dump error!' && exit;}
echo '------ 部门 备份完成 ------'
# 人员
mongodump -h ${base_host} -d ${base_db} -c users -o ./
[ $? -ne 0 ] && { echo 'users dump error!' && exit;}
echo '------ 人员 备份完成 ------'
# 角色
mongodump -h ${base_host} -d ${base_db} -c busiroles -o ./
[ $? -ne 0 ] && { echo 'busiroles dump error!' && exit;}
mongodump -h ${base_host} -d ${base_db} -c roles -o ./
[ $? -ne 0 ] && { echo 'roles dump error!' && exit;}
echo '------ 角色 备份完成 ------'
# 工作流配置
mongodump -h ${base_host} -d ${base_db} -c pcfgs -o ./
[ $? -ne 0 ] && { echo 'pcfgs dump error!' && exit;}
echo '------ 工作流配置 备份完成 ------' && exit;
;;
esac
done
}
# 恢复基础表数据
dbRestore() {
echo "------ 初始 ${dev_host} 中 ${dev_db} 数据------"
select restoreType in all itemByItem;
do
case ${restoreType} in
all )
mongorestore -h ${dev_host} -d ${dev_db} --drop ./${base_db};
echo '------ 全部初始完成 ------' && exit;
;;
itemByItem )
# 枚举常量
mongorestore -h ${dev_host} -d ${dev_db} -c dbenums --drop ./${base_db}/dbenums.bson;
[ $? -ne 0 ] && { echo 'dbenums restore error!' && exit;}
echo '------ 枚举常量 初始完成 ------'
# 部门
mongorestore -h ${dev_host} -d ${dev_db} -c orgs --drop ./${base_db}/orgs.bson;
[ $? -ne 0 ] && { echo 'orgs restore error!' && exit;}
echo '------ 部门 初始完成 ------'
# 人员
mongorestore -h ${dev_host} -d ${dev_db} -c users --drop ./${base_db}/users.bson;
[ $? -ne 0 ] && { echo 'users restore error!' && exit;}
echo '------ 人员 初始完成 ------'
# 角色
mongorestore -h ${dev_host} -d ${dev_db} -c busiroles --drop ./${base_db}/busiroles.bson;
[ $? -ne 0 ] && { echo 'busiroles restore error!' && exit;}
mongorestore -h ${dev_host} -d ${dev_db} -c roles --drop ./${base_db}/roles.bson;
[ $? -ne 0 ] && { echo 'roles restore error!' && exit;}
echo '------ 角色 初始完成 ------'
# 工作流配置
mongorestore -h ${dev_host} -d ${dev_db} -c pcfgs --drop ./${base_db}/pcfgs.bson;
[ $? -ne 0 ] && { echo 'pcfgs restore error!' && exit;}
echo '------ 工作流配置 初始完成 ------' && exit;
;;
esac
done
}
echo '------ 选择操作类型 ------'
select handleType in db_dump db_restore;
do
case ${handleType} in
db_dump )
dbDump && exit;
;;
db_restore )
dbRestore && exit;
;;
esac
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment