实现ubuntu系统中MongoDB数据库自动备份

最近需要对部署在ubuntu上的MongoDB数据库中的数据进行备份,一接到该需求,心里就是想只能用shell等脚本语言才能实现该功能。

 

于是根据自身实际问题整理出了一些解决方案:

  • 一、创建存储MongoDB数据库备份的文件

  • mkdir -p mnt/user1/data/program/mongodb_bak_now
    mkdir -p /mnt/user1/data/program/mongodb_bak_list

    二、shell脚本

    • 1、创建shell等脚本

    • cd /usr/data_bak/mongo_bak
      vim mongodb_dump.sh

      2、对刚刚创建的shell脚本进行内容编辑

    • # !/bin/bash
      # backup MongoDB
      #mongodump命令路径
      DUMP=/mnt/user1/data/program/mongodb/bin/mongodump
      #临时备份目录
      OUT_DIR=/mnt/user1/data/program/mongodb_bak_now
      #备份存放路径
      TAR_DIR=/mnt/user1/data/program/mongodb_bak_list
      #获取当前系统时间
      DATE=`date +%Y_%m_%d`
      #数据库账号
      DB_USER=""
      #数据库密码
      DB_PASS=""
      #DAYS=150 代表删除150天前的备份,即只保留近15天的备份
      DAYS=150
      #最终保存的数据库备份文件
      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
      #删除 150 天前的备份文件
      find $TAR_DIR/ -mtime +$DAYS -delete
      ​
      exit

      3、对编辑好的shell脚本赋予权限操作

    • chmod 777 mongodb_dump.sh

       

  • 三、添加定时任务,执行上述shell脚本内容

    • 1、添加定时任务

    • vim /etc/crontab

       

    •  

       在crontab文件中末尾添加新的定时任务,用于执行MongoDB自动备份

      30 12   * * *   root    /usr/data_bak/mongodb_bak/mongodb_dump.sh

      以上表示每天12:30执行具体目录下的MongoDB自动备份shell脚本

  • 四、重启定时服务

  • sudo service cron status
    sudo service cron restart

     

如上述定时任务没有执行,可查看cron日志进行问题排查

ubuntu 中cron运行日志默认是关闭的,因此需要进入默认配置文件中将配置打开

sudo vim /etc/rsyslog.d/50-default.conf

   

    找到这行,将前面注释符#去掉,保存退出

# 重启rsyslog
sudo service rsyslog restart 
# 查看cron运行日志信息
vim /var/log/cron.log 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值