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 (不一一写出来了)。

  • 相关阅读:
    Java 中文 乱码问题
    JQuery 操作 radio 被坑一例
    标准I/O库之打开和关闭流
    标准I/O库之缓冲
    标准I/O库之标准输入、标准输出和标准出错
    标准I/O库之流和FILE对象
    文件和目录之文件访问权限位小结
    文件和目录之设备特殊文件
    文件和目录之chdir、fchdir和getcwd函数
    文件和目录之读目录
  • 原文地址:https://www.cnblogs.com/sanmu083/p/5591209.html
Copyright © 2011-2022 走看看