对ubuntu中MongoDB数据进行异地备份

对ubuntu上的MongoDB数据库中的数据进行异地备份,想到异地备份肯定就需要用到网络协议方面的知识点,第一印象想到就是用的比较多的ftp和sftp,想着追求新知识,于是本人使用了没接触过的smb协议。

在上篇文章<mongodb自动备份>的基础上来实现异地备份

  • 安装smb服务

    • 查看是否安装过smb服务
      smbd -V
      

    如未安装,通过以下命令安装

    sudo apt-get install samba
    

    此时有可能会出现安装失败的情况,本人在安装过程中就出现了以下错误
    在这里插入图片描述
    感觉像是需要的环境不存在,于是想方设法解决
    终于找到了一个报错情况类似的解决方案,按照解决方案上说的,好像是问题出在软件包源上,根据此 repogen.simplylinux.ch 网站对 /etc/apt/sources.list 下面的软件包源进行新增,具体操作如下:
    1、打开 repogen.simplylinux.ch 网站,选择内容,生成清单
    在这里插入图片描述
    2、将生成的清单,复制并新增到 /etc/apt/sources.list 中
    在这里插入图片描述
    在这里插入图片描述
    3、通过执行 source /etc/apt/sources.list 重新加载 sources.list 文件
    当然还可以执行以下命令来辅助,更新配置
    sudo apt-get update
    sudo dpkg --configure -a

    上述具体问题参考网址:https://askubuntu.com/questions/767594/samba-wont-install-because-of-broken-packages
    解决上述问题后,就可以安装服务了

    sudo apt-get install samba
    sudo apt-get install smbclient
    
  • 启动 smb 服务

    systemctl status smbd  -- 查看服务状态
    sudo service smbd start  -- 启动服务
    sudo service smbd stop  -- 停止服务
    sudo service smbd restart  -- 重启服务
    
  • smbclient命令连接测试

    smbclient //server/share -U user   --smbclient命令格式
    smbclient //server/share -U user%password   --smbclient命令格式
    #具体本人连接命令示例:
    smbclient //192.168.3.160/file -U administrator%12345
    
  • mount 命令,磁盘挂载

    sudo mount -t cifs -o username=administrator //192.168.3.160/file/ /mnt/user1/data/file/
    

    在这里插入图片描述
    出现如上错误解决方案是安装 cifs-utils包

    sudo apt-get install cifs-utils
    

    以上解决方案参考网址:https://www.cnblogs.com/qmfsun/p/6556376.html

  • shell脚本

    • 创建shell脚本

      cd /usr/data_bak/mongo_bak/
      vim mongodb_other_dump.sh
      
    • 编辑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/nsfile/mongodb
      #获取当前系统时间
      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/*
      rm -rf $TAR_DIR/*
      mkdir -p $OUT_DIR/$DATE
      $DUMP -o $OUT_DIR/$DATE
      #压缩格式为 .tar.gz 格式
      tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
      
      exit
      
    • 对编辑好的shell脚本赋予权限操作

      chmod 777 mongodb_other_dump.sh
      
  • 添加定时任务,执行上述shell脚本内容

    • 添加定时任务
      vim /etc/crontab
      
      在crontab文件中末尾添加新的定时任务,用于执行MongoDB自动备份
      30 03   */7 * *   root    /usr/data_bak/mongodb_bak/mongodb_dump.sh
      
      以上表示每周凌晨3点半执行一次具体目录下的MongoDB自动备份shell脚本
  • 重启定时服务

    sudo service cron status
    sudo service cron restart
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值