mongodb 数据自动备份

创建Mongodb数据库备份目录

mkdir -p ~/backup/mongod_bak/mongod_bak_now
mkdir -p ~/backup/mongod_bak/mongod_bak_list

新建Mongodb数据库备份脚本

mkdir ~/crontab/ && vi ~/crontab/mongod_bak.sh #新建文件,输入以下代码

#!/bin/sh
DUMP=~/mongodb-linux-x86_64-4.0.1/bin/mongodump # mongodump备份文件执行路径
OUT_DIR=~/backup/mongod_bak/mongod_bak_now # 临时备份目录
TAR_DIR=~/backup/mongod_bak/mongod_bak_list # 备份存放路径
DATE=`date +%Y_%m_%d` # 获取当前系统时间
DB_USER=youuser # 数据库账号
DB_PASS=youpassword # 数据库密码
DB_NAME=diary # 要备份的数据恢复库名字
DAYS=30 # DAYS=30代表删除30天前的备份,即只保留最近30天的备份
TAR_BAK="mongod_$DB_NAME_bak_$DATE.tar.gz" # 最终保存的数据库备份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -h 127.0.0.1 --port 27017 -u $DB_USER -p $DB_PASS -d $DB_NAME -o $OUT_DIR/$DATE # 备份全部数据库
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE # 压缩为.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete # 删除天前的备份文件

修改文件属性,使其可执行

chmod +x ~/crontab/mongod_bak.sh #修改文件属性,使其可执行

修改/etc/crontab #添加计划任务

crontab -e
在下面添加
30 1 * root ~/crontab/mongod_bak.sh #表示每天凌晨1点30执行备份

重新启动crond使设置生效

/sbin/service crond reload #重新载入配置
chkconfig --level 35 crond on  #加入开机自动启动:
/sbin/service crond start   #启动服务
crontab -l #列出crontab文件

恢复备份

./mongorestore -h 127.0.0.1 —port 27017 -u youuser -p youpassword -d diary ~/backup/mongod_bak/mongod_bak_now/

猜你喜欢

转载自www.cnblogs.com/daysme/p/10013879.html