本分脚本:

!/bin/bash
#备份文件执行路径 which mongodump
DUMP=
#临时备份目录
OUT_DIR=
#本分存放目录
TAR_DIR=
#获取当前系统时间==> 2016_04_11 
DATE=`date +%Y_%m_%d`
#数据库账号
DB_USER=
#数据库密码
DB_PASS=
#保留最近N天的备份
DAYS=
#最后保存的数据库备份名称
TAR_BAK=“mongod_bak_$DATE.tar.gz” #进入临时备份目录
cd $OUT_DIR
#删除临时备份目录中的文件 #rm -rf $OUT_DIR/*
mv $OUT_DIR/* /tmp/ 
#本次临时备份目录
mkdir -p $OUT_DIR/$DATE
#备份全部数据库
#mongoexport -d foobar -c persons -o D:/persons.json
#mongodump --host 127.0.0.1:27017 -d foobar -o d:/foobar $DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE
#压缩
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
#删除N天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete

恢复脚本:

#!/bin/bash
###########################
#恢复mongodb 数据库
#author:similarface
#date:2016-04-26
#email:similarface@outlook.com
###########################
#恢复数据库的名称 如果不书写恢复的数据库名称 会删除数据库的所有dbs然后恢复,给了就会重新生成加dateflag的库
RECONVERDBNAME=cube_test_
#恢复命令
RECONVERYBIN=/usr/local/mongodb/bin/mongorestore
#备份目录
BACKUPBASEDIR=/BAK/mongodbak/current
#存放的老数据
BACKUPBASEOLDDIR=/BAK/mongodbak/olddata/
#解压所文件的目录
BACKUPBASEEXTRACT=/BAK/mongodbak/extract/ for file in $BACKUPBASEDIR/*
do
if test -f $file
then
#压缩文件的文件名 去除了绝对路径
tarfilename=${file##*/}
#获取时间标签 mongod_bak_DATE.tar.gz 就是这儿的DATE的值
dateflag=${tarfilename:11:10}
#解压文件到指定的目录
tar -xf $file -C ${BACKUPBASEEXTRACT}
if [[ $? -eq 0 ]];then
echo "解压缩成功,备份文件有效!"
else
echo "解压缩失败,备份文件有可能无效,请检查!"
exit 0
fi
#获取解压缩的绝对路径
gunzipdir=${BACKUPBASEEXTRACT}/home/davy/mongoBak/${dateflag}/
#进行数据库的恢复
if [ -z "$RECONVERDBNAME" ];then
${RECONVERYBIN} --drop ${gunzipdir} 2> /tmp/mongoright${dateflag}.log >>/tmp/mongoerr${dateflag}.err
else
${RECONVERYBIN} --db ${RECONVERDBNAME}${dateflag} ${gunzipdir}/cube_test 2> /tmp/mongoright${dateflag}.log >>/tmp/mongoerr${dateflag}.err
fi
if [[ $? -eq 0 ]];then
echo "数据库恢复成功,查看恢复日志/tmp/mongoright${dateflag}.log."
else
echo "数据库恢复失败,查看错误日志/tmp/mongoerr${dateflag}.err."
fi
rm -rf ${BACKUPBASEEXTRACT}/*
if [[ $? -eq 0 ]];then
echo "清除压缩文件成功."
else
echo "清除压缩文件失败\n."
fi
#将恢复后的文件放在olddata下去
mv ${BACKUPBASEDIR}/* ${BACKUPBASEOLDDIR}
fi
done

Mongodb之备份恢复脚本的更多相关文章

  1. mongodb数据库备份恢复-windows系统

    备份语法: mongodump命令脚本语法如下: >mongodump -h dbhost -d dbname -o dbdirectory -h: MongDB所在服务器地址,例如:127.0 ...

  2. Mongodb数据备份恢复

    Mongodb数据备份恢复 一.MongoDB数据库导入导出操作 1.导出数据库 twangback为备份的文件夹 命令: mongodump -h 127.0.0.1[服务器IP] -d advie ...

  3. mongodb 的备份恢复导入与导出

    导入导出 use hndb; db.s.save({name:'李四',age:18,score:80,address:'郑州'}); db.s.save({name:'李三',age:8,score ...

  4. mongodb数据库备份恢复

    MongoDB数据文件备份与恢复   备份与恢复数据对于管理任何数据存储系统来说都是非常重要的.   1.冷备份与恢复——创建数据文件的副本(前提是要停止MongoDB服务器),也就是直接copy  ...

  5. Centos 8 上定时备份Gitlab ,脚本实现定时备份,备份恢复

    定时备份 要求 为了能够备份和恢复,请确保你的系统上安装了Rsync yum install rsync -y 配置备份目标机器免密认证 执行ssh-keygen -t rsa 生成私钥和公钥 ssh ...

  6. postgresql 和 mysql 数据库备份恢复以及时区问题

    概要 postgesql 12 备份/恢复脚本 时区设置 mysql 5.6 备份/恢复脚本 时区设置 概要 postgresql 和 mysql 是最常用的 2 种开源关系数据库, 很多项目也会优先 ...

  7. 010.MongoDB备份恢复

    一 MongoDB备份 1.1 备份概述 mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoi ...

  8. Mongodb的备份,恢复,导入与导出(cmd命令行实现)

    要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下命令均在cmd ...

  9. MongoDB学习(三)数据导入导出及备份恢复

    这几天想着公司要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下 ...

随机推荐

  1. 线程间操作无效: 从不是创建控件“textBox4”的线程访问它

    原文发布时间为:2009-03-30 -- 来源于本人的百度文章 [由搬家工具导入] public long str1, str2, str3, str4, str5, sum=0,sum1=0; p ...

  2. 转一个网址,canvas用法

    http://blog.csdn.net/jia20003/article/details/9251893 http://www.w3school.com.cn/cssref/pr_animation ...

  3. js 数组知识复习

    2.Array类型 2.1 创建数组 两种方式: 1.new Array(); //创建一个空数组 var arr1 = new Array(); //创建一个长度为10的空数组, var arr2 ...

  4. LeetCode OJ-- Populating Next Right Pointers in Each Node

    https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node/ 二叉树遍历的变种:树的节点多了个next指针 ...

  5. 用chardet判断字符编码的方法

    转自http://www.cnblogs.com/xiaowuyi/archive/2012/03/09/2387173.html 用chardet判断字符编码的方法   1.chardet下载与安装 ...

  6. 过滤器解决hibernate中懒加载问题

    使用过滤器解决懒加载问题需要我们对过滤器的生命周期有深刻的理解 1.浏览器发送一个请求 2.请求通过过滤器执行dofilter之前的代码 3.浏览器通过过滤器到达Servlet(注意我们这里的serv ...

  7. 2016北京集训测试赛(十七)Problem A: crash的游戏

    Solution 相当于要你计算这样一个式子: \[ \sum_{x = 0}^m \left( \begin{array}{} m \\ x \end{array} \right) \left( \ ...

  8. - > 动规讲解基础讲解六——编辑距离问题

    给定两个字符串S和T,对于T我们允许三种操作: (1) 在任意位置添加任意字符(2) 删除存在的任意字符(3) 修改任意字符 问最少操作多少次可以把字符串T变成S?  例如: S=  “ABCF”   ...

  9. Linux下设置开机启动

    新配置了vsftpd 需要设置ftp开机启动,linux新手,还不是很熟悉linux下的操作! 查询后发现命令是: chkconfig vsftpd on chkconfig命令用于设置运行级别   ...

  10. 记录一次(xheditor-1.1.6-zh-cn.min.js)的错误:Cannot read property 'match' of undefined的问题解决

    由于使用了xheditor富文本框,且这个版本是2011年开发的系统,当时只有IE8,所以一切正常. 但是问题来了,今天使用IE11测试和谷歌浏览器测试,发现一直报这个错误: 且google了一下,没 ...