mongodb数据库定时自动备份教程

2018.05.18 14:57 阅读 485 评论 0
  1. 新建备份的临时目录和备份目录
mkdir -p /home/mongodb_bak/mongodb_bak_now

mkdir -p /home/mongodb_bak/mongodb_bak_list
  1. /home/mongodb_bak新建shell脚本mongodb_bak.sh
touch mongodb_bak.sh
  1. vim mongodb_bak.sh编辑内容,在其中添加如下内容,并修改相应位置。
#!/bin/bash
#backup MongoDB

#mongodump命令路径
DUMP=/usr/bin/mongodump

#临时备份目录  
OUT_DIR=/home/mongodb_bak/mongodb_bak_now

#备份存放路径  
TAR_DIR=/home/mongodb_bak/mongodb_bak_list

#获取当前系统时间  
DATE=`date +%Y_%m_%d`

#数据库ip
DB_HOST="127.0.0.1:27017"
#数据库账号  
DB_USER=username
#数据库密码  
DB_PASS=password

#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 -h $DB_HOST -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE
#压缩为.tar.gz格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
#删除15天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete

exit 
  1. shell文件在linux下运行需要添加权限
chmod +x mongodb_bak.sh

这时在mongodb_bak目录下输入./mongodb_bak.sh,运行mongodb_bak.sh就会进行数据库的备份。接下来设置定时运行脚本

  1. 添加自动运行脚本计划vi /etc/crontab,在crontab中添加内容。
55 23 * * * root /home/mongodb_bak/mongodb_bak.sh

每天23点55执行一次自动备份。

注:如果在windows下编辑的然后上传到linux服务器上,可能出现No such file or directory的问题,请查看文章:Linux执行.sh结尾shell文件报错No such file or directory问题解决办法

0 条评论
发布