ubuntu下自动备份MongoDB数据

一、创建MongoDB备份目录

  mkdir -p /usr/dataBak/mongodb_bak/mongodb_bak_now
  mkdir -p /usr/dataBak/mongodb_bak/mongodb_bak_list

二、备份脚本(/usr/dataBak/mongodb_bak/MongoDB_bak.sh)

  cd /usr/dataBak/mongodb_bak/
  vi MongoDB_bak.sh

在MongoDB_bak.sh里面输入

  # !/bin/bash
  # backup MongoDB
  #mongodump命令路径
  DUMP=/usr/bin/mongodump
  #临时备份目录
  OUT_DIR=/usr/dataBak/mongodb_bak/mongodb_bak_now
  #备份存放路径
  TAR_DIR=/usr/dataBak/mongodb_bak/mongodb_bak_list
  #获取当前系统时间
  DATE=`date +%Y_%m_%d`
  #数据库账号
  DB_USER="admin"
  #数据库密码
  DB_PASS="123456"
  #DAYS=15代表删除15天前的备份,即只保留近15天的备份
  DAYS=15
  #最终保存的数据库备份文件
  TAR_BAK="mongodb_bak_$DATE.tar.gz"
  cd $OUT_DIR
  rm -rf $OUT_DIR/*
  mkdir -p $OUT_DIR/$DATE
  $DUMP -o $OUT_DIR/$DATE
  # 压缩格式为 .tar.gz 格式
  tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
  # 删除 15 天前的备份文件
  find $TAR_DIR/ -mtime +$DAYS -delete

  exit

注意:DUMP这里的路径是mongodb安装的时候的路径,可以通过:

  locate mongo

查找到mongodb安装的位置,我的系统下安装在/usr/bin/下面,在/usr/bin/里面也有/usr/bin/mongodump。

三、修改/etc/crontab,添加计划任务

  vi /etc/crontab

添加任务:每天1:30开始执行MongoDB数据库备份脚本

 30 1    * * *   root    /usr/dataBak/mongodb_bak/MongoDB_bak.sh

四、恢复数据库

如:我想要从备份的数据库testdb里面,恢复test1数据库里面的数据。
执行以下代码:

  mongorestore --db test1 /usr/dataBak/mongodb_bak/mongodb_bak_now/2018_04_19/testdb

你可能感兴趣的:(ubuntu下自动备份MongoDB数据)