#!/bin/sh

# This script is run on every mongo node. However, it checks to see if this node is the primary mongo node.
# If it is, mongo db is backed up and deleted the user session collection files.
# If this node is not primary mong node, nothing is done. MONGO_BACKUP_FOLDER=/backup/mongo-prod HOST_IP=`/sbin/ifconfig | sed -n 's/.*inet addr:\([0-9.]\+\)\s.*/\1/p' | head -n1`
echo "HOST_IP: " $HOST_IP HOST_NAME=`hostname`
echo "HOST_NAME: " $HOST_NAME IS_PRIMARY=`mongo --quiet $HOST_IP --eval "print(db.isMaster().ismaster);"`
echo "IS_PRIMARY: " $IS_PRIMARY PRIMARY_HOST=`mongo --quiet $HOST_IP --eval " var primary = db.isMaster().primary;
if(primary && primary.indexOf(':') > ) primary = primary.substring(, primary.indexOf(':'));
print(primary);"`
if [ $PRIMARY_HOST == "undefined" ]
then
PRIMARY_HOST=`hostname`
fi
echo "PRIMARY_HOST: " $PRIMARY_HOST if [ "${IS_PRIMARY}" == "false" ]
then
echo "$PRIMARY_HOST is primary mongo node. Backing up data...."
BACKUP_FOLDER=`date +'%Y-%m-%d_%H%M%S'`
BACKUP_DIR=$MONGO_BACKUP_FOLDER/$BACKUP_FOLDER/$PRIMARY_HOST mkdir -p $BACKUP_DIR
cd $BACKUP_DIR
echo "PWD:" `pwd` EXPORT_RESULT=`mongodump -h $HOST_IP`
echo "Backed up data in $BACKUP_DIR" #delete user session collection
if [ -d ${BACKUP_DIR}/dump/sxa ]
then
if [ -f ${BACKUP_DIR}/dump/sxa/userSessionCollection.bson ]
then
rm -f ${BACKUP_DIR}/dump/sxa/userSessionCollection.bson
echo "Deleted user session data bson"
fi
if [ -f ${BACKUP_DIR}/dump/sxa/userSessionCollection.metadata.json ]
then
rm -f ${BACKUP_DIR}/dump/sxa/userSessionCollection.metadata.json
echo "Deleted user session metadata json"
fi
fi KEEP_DAYS=
#Delete back-up folder olders than KEEP_DAYS
echo "Removing backup data older than $KEEP_DAYS days....."
find $MONGO_BACKUP_FOLDER -mtime +$KEEP_DAYS -exec rm {} \;
echo "Done removing backup data older than $KEEP_DAYS days"
else
echo "$HOST_NAME is not primary mongo server ($PRIMARY_HOST is primary). Back-ups are run only on the primary."
fi echo "Complete!!!"

Mongo Backup的更多相关文章

  1. docker mongo backup 不用找啦,就在这里。

    rm -rf /tmp/mongodump && mkdir /tmp/mongodumpdocker run -it --rm --link lps-mongodb:mongo -v ...

  2. MongoDB Connector for Hadoop

    MongoDB Connector for Hadoop https://github.com/mongodb/mongo-hadoop Purpose The MongoDB Connector f ...

  3. Docker搭建MongoDB

    1. Docker搭建Mongodb 1.1 获取docker镜像 docker pull mongo 1.2 创建mongodb容器 docker run --name my-mongo -p 27 ...

  4. MongoDB With Spark遇到的2个错误,不能初始化和sample重复的key

    1.$sample stage could not find a non-duplicate document while using a random cursor 这个问题比较难解决,因为我用mo ...

  5. Mongodb基于oplog恢复至任意时间

    背景: 最近后端基于mongo的项目越来越多,MySQL基于冷备份+binlog可以恢复至任意时间点,那么mongo是否有同样的功能呢?经过调研发现可以通过dump+oplog可以实现粒度更细致的恢复 ...

  6. Istio VirtualService 虚拟服务

    概念及示例 VirtualService 描述了一个或多个用户可寻址目标到网格内实际工作负载之间的映射 . 虚拟服务让您配置如何在服务网格内将请求路由到服务,这基于 Istio 和平台提供的基本的连通 ...

  7. centos7 在docker下安装mongodb

    第一步:安装 1.1 查找(查看)mongo相应的版本 [root@localhost ~]# docker search mongo INDEX NAME DESCRIPTION STARS OFF ...

  8. Adnc如何本地调试 - 一个轻量级的.Net Core微服务开发框架

    前言     Adnc是一个轻量级的.Net Core微服务开发框架,同样适用于单体架构系统的开发.     如果只是想本地调试,只需要安装必备软件,必备软件除开发工具外,其它软件建议大家都使用`do ...

  9. mongo创建用户

    use dwb db.createUser( { "user" : "username",                         "pwd& ...

随机推荐

  1. 《Tsinghua oc mooc》第8~10讲 虚拟内存管理

    资源 OS2018Spring课程资料首页 uCore OS在线实验指导书 ucore实验基准源代码 MOOC OS习题集 OS课堂练习 Piazza问答平台 暂时无法注册 第八讲 虚拟内存概念 为什 ...

  2. S1. Android 功能大全

    [概述] 这篇文章主要描述安卓开发中可能实现的功能点. [准备工作] IDE:Android Studio,简单操作 如何创建一个 Android 项目 Android 项目结构分析 Androidm ...

  3. Sql Server\ MySql 日期

    ------------------MS Sql Server------------------ declare @ctrBeginTime =null; if(@ctrBeginTime Is N ...

  4. redis 持久化 ——RDB

    文章目录 RDB 关于 fork dump.rdb 文件 如何触发 RDB 快照 如何恢复 优势 劣势 停掉 RDB RDB redis database 的简写 : 在指定时间间隔后,将内存中的数据 ...

  5. php微信小程序生成二维码,出现乱码,{"errcode":44002,"errmsg":"empty post data"},'{"errcode":41001,"errmsg":"access_token missing hint: [OoC.2a0822e255]"}',以及其他的坑

    微信小程序的坑简直比我的头发还多,今天下午获取微信二维码,遇到的44002,41001,还有图片没法正常显示以及小程序参数获取的问题,接下来一一解决 首先获取微信token然后再获取二维码这个没什么好 ...

  6. wordpress 后台无法登录 网站内容缺失

    昨天网站又突然不正常了,前两天都是好的.. 具体来说就是wp后台登录不进去,一直在登录页跳转,与此同时服务器上其他网站也有这个问题,而且有些网站的板块内容也缺失了, 所以首要就是要登录进后台看看是不是 ...

  7. Django之Form与ModelForm组件

    Django之Form与ModelForm组件 1.Form介绍 Form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 O 保留上次的输入内容 普通方式手写注册功能 vi ...

  8. 利用Python进行数据分析_Numpy_基础_3

    通用函数:快速的元素级数组函数 通用函数,是指对数组中的数据执行元素级运算的函数:接受一个或多个标量值,并产生一个或多个标量值. sqrt 求平方根 np.sqrt(arr) exp 计算各元素指数 ...

  9. Android 卸载应用程序

    最近工作中接触Android应用实现卸载自身的逻辑,踩了一些坑之后整理下来.使用的方法是Intent.ACTION_DELETE,这里没有什么好说的. MainActivity.java : pack ...

  10. Solr综合案例深入练习

    1. 综合案例 1.1. 需求 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字.分类.价格搜索商品信息,也可以根据价格进行排序,并且实现分页功能. 界面如下: 1.2. 分析 开发人员需要 ...