zoukankan      html  css  js  c++  java
  • Mongo自动备份

    功能说明

    • 每天凌晨3点备份当前状态下的mongo数据,保存的日期为前一天,如:2015年11月12号凌晨保存的数据目录名为20151111。

    • 然后每天都会删除四天之前所备份的数据(意思是仅保留最近三天的备份数据)。

    具体实现

    • 执行备份的脚本:backup.bat
    #!/bin/bash
    
    #存放备份数据的路径
    targetpath='/home/sam/mongodb/'
    #获取昨天的日期
    nowtime=$(date -d '-1 days' +"%Y%m%d")
    
    #如果昨天的文件不存在
    if [ ! -d ${targetpath}/${nowtime}/ ]
    then
      #创建昨天的数据文件夹
      mkdir ${targetpath}/${nowtime}
    fi
    
    #备份数据到指定文件夹
    mongodump -h 127.0.01 -o ${targetpath}/${nowtime}
    
    • 执行删除的脚本:remove.bat
    #!/bin/bash
    
    #存放备份数据的路径
    targetpath='/home/sam/mongodb/'
    #获取前第四天的日期
    nowtime=$(date -d '-4 days' +"%Y%m%d")
    
    #如果该文件夹存在
    if [ -d ${targetpath}/${nowtime}/ ]
    then
      #删除该文件夹
      rm -rf ${targetpath}/${nowtime}
    fi
    
    • 执行恢复数据的脚本:restore.bat
    #!/bin/bash
    
    #存放备份数据的路径
    targetpath='/home/sam/mongodb/'
    #获取前第一天的日期
    time1=$(date -d '-1 days' +"%Y%m%d")
    #获取前第二天的日期
    time2=$(date -d '-2 days' +"%Y%m%d")
    #获取前第三天的日期
    time3=$(date -d '-3 days' +"%Y%m%d")
    
    #如果存在数据
    if [ -d ${targetpath}/${time1}/ ]
    then
      #恢复数据
      mongorestore ${targetpath}/${time1}/
      #结束脚本
      exit
    fi
    
    #如果存在数据
    if [ -d ${targetpath}/${time2}/ ]
    then
      #恢复数据
      mongorestore ${targetpath}/${time2}/
      #结束脚本
      exit
    fi
    
    #如果存在数据
    if [ -d ${targetpath}/${time3}/ ]
    then
      #恢复数据
      mongorestore ${targetpath}/${time3}/
      #结束脚本  
      exit
    fi
    
    • 恢复数据脚本说明
    #恢复所有数据库到mongodb中:
    mongorestore ${targetpath}/${time3}/
    #恢复指定数据库:
    mongorestore -d apk ${targetpath}/${time3}/apk/
    
    • 添加计划任务:crontab -e (看不懂这里请百度crontab)
    #每天凌晨3点执行backup.bat
    0 3 * * * /home/sam/mongodb/bat/backup.bat
    #每天凌晨3点执行remove.bat
    0 3 * * * /home/sam/mongodb/bat/remove.bat
    

    提示:记得给你的bat文件获取权限: sudo chmod 777 ./backup.bat (不一一写出来了)。

  • 相关阅读:
    常用的 HTML 头部标签
    placeholder的兼容处理方法
    用Meta标签代码让360双核浏览器默认极速模式打开网站不是兼容模式
    终于有人把P2P、P2C、O2O、B2C、B2B、C2C的区别讲透了!还有许多其它类别的类型分享
    JS判断android ios系统 PC端和移动端
    一路的前端编辑器
    图片压缩的在线好工具
    关于文本换行的问题
    字符、字节的概念及其区别
    application/x-www-form-urlencoded接口响应报文中文乱码
  • 原文地址:https://www.cnblogs.com/sanmu083/p/5591209.html
Copyright © 2011-2022 走看看