Last active
January 12, 2017 14:28
-
-
Save haiyon/0d1a54fa4e08a58af7748289af508624 to your computer and use it in GitHub Desktop.
mongo dump/restore
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # @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