mongodb在linux 上自动备份全部数据 并且只保留近几天 超出天数就删掉老的备份文件

mongodb在linux 上自动备份全部数据 并且只保留近几天 超出天数就删掉老的备份文件

先写 sh脚本命令 (全)

#!/bin/sh

DUMP=/usr/local/mongodb/bin/mongodump #mongodump备份文件执行路径

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

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

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

DB_USER=xxx #数据库账号

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

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

cd $OUT_DIR                      # 先cd到临时的备份存放路径  

rm -rf $OUT_DIR/*                # 删除临时备份路径下的所有文件

mkdir -p $OUT_DIR/$DATE          # 创建一个当前时间的文件夹
 
$DUMP -d $DB_USER -o $OUT_DIR/$DATE #备份全部数据库数据到临时文件地址里面

tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE  #获取到临时文件 压缩为.tar.gz格式 

find $TAR_DIR/ -mtime +$DAYS -delete #删除备份存放路径下10天前的备份文件

脚本没有密码

配置cron 定时任务

一般都是cd到 /var/spool/cron 下面有个配置文件 然后加上下面的配置 记得sh脚本路径就是你放的sh脚本路径
如果懒得找 就在sh脚本目录下执行 pwd 查看全路径 复制粘贴一下就行

30 1 * * * /home/xxx/xxxx/xxx/mongod_bak.sh    # 表示在凌晨的 1点30分执行这个sh脚本   

crontab -l #查看定时任务是否生效是否在里面
cat /var/log/cron #查看cron的log日志
温馨提示:cron配置完成以后是不需要重启的

还原 mongodb 数据库脚本

如果上面都生效了以后 每天凌晨1.30分会自动生成数据库脚本 导入数据库只需要把生成的文件进行解压

cd /home/backup/mongod_bak/mongod_bak_list  # 先cd到你的数据库备份文件里面 找到最新或者你需要还原的版本

当你解压以后 需要进入到mongodb 的 bin 下执行此脚本 或者你可以直接写全路径执行脚本 小编是直接先cd到mongodb的bin下

./mongorestore -d 要还原的数据库名称 /home/backup/mongod_bak/mongod_bak_now/2020_11_01/数据库名称

如果根据我的文档还是不生效的话 :)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值