Linux创建mongodb自动备份脚本

1.创建bash文件

如下脚本转载自:link
假设保存文件到 /var/server/mongodb/backup.sh
假设备份工具路径是 /var/server/mongodb/bin/mongodump 如下是脚本:

#!/bin/sh
DB_HOST="127.0.0.1"

DB_NAME="dbname"

OUT_DIR="/data/backup/mongod_bak/mongod_bak_now" #临时备份目录

TAR_DIR="/data/backup/mongod_bak/mongod_bak_list" #备份存放路径

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

echo "-----当前时间为$DATE-----"

DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份

TAR_BAK="mongod_bak_$DATE.tar.gz" #最终保存的数据库备份文件名

cd $OUT_DIR

echo "-----删除原有备份文件-----"

find $OUT_DIR/ -print

rm -rf $OUT_DIR/*

mkdir -p $OUT_DIR/$DATE

echo "-----开始备份全部数据库-----"

/var/server/mongodb/bin/mongodump -h $DB_HOST -u xxxx -p xxxxx -o $OUT_DIR/$DATE #备份全部数据库,具体可以参照:  mongodump --help

echo "-----开始压缩备份文件-----"

tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #压缩为.tar.gz格式

echo "-----删除7天前的备份文件-----"

find $TAR_DIR/ -mtime +$DAYS -delete #删除7天前的备份文件
2.添加到crontab

执行如下命令:

crontab -e

假设设置为凌晨2:30来备份:

30 2 * * * /var/server/mongodb/backup.sh >> /data/backup/mongod/logs/backup.log 2>&1

注意点:
1.备份的账号需要有 dbAdminAnyDatabase 和 backup 角色权限;
2.客户端和服务端版本相差多了,比如大版本不同可能会有问题,那么下载同一个大版本的客户端通常能搞定;
3.使用前测试好计划任务是否能够正确执行;

寻找对应版本,如linux下mongodb3.X版本,可以从从官网下载源码 link

如:

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.7.tgz

解压后可以使用对应的 mongodump 即可;

配置完成!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值