一、创建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
网友评论