Mongo Backup
#!/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的更多相关文章
- docker mongo backup 不用找啦,就在这里。
rm -rf /tmp/mongodump && mkdir /tmp/mongodumpdocker run -it --rm --link lps-mongodb:mongo -v ...
- MongoDB Connector for Hadoop
MongoDB Connector for Hadoop https://github.com/mongodb/mongo-hadoop Purpose The MongoDB Connector f ...
- Docker搭建MongoDB
1. Docker搭建Mongodb 1.1 获取docker镜像 docker pull mongo 1.2 创建mongodb容器 docker run --name my-mongo -p 27 ...
- MongoDB With Spark遇到的2个错误,不能初始化和sample重复的key
1.$sample stage could not find a non-duplicate document while using a random cursor 这个问题比较难解决,因为我用mo ...
- Mongodb基于oplog恢复至任意时间
背景: 最近后端基于mongo的项目越来越多,MySQL基于冷备份+binlog可以恢复至任意时间点,那么mongo是否有同样的功能呢?经过调研发现可以通过dump+oplog可以实现粒度更细致的恢复 ...
- Istio VirtualService 虚拟服务
概念及示例 VirtualService 描述了一个或多个用户可寻址目标到网格内实际工作负载之间的映射 . 虚拟服务让您配置如何在服务网格内将请求路由到服务,这基于 Istio 和平台提供的基本的连通 ...
- centos7 在docker下安装mongodb
第一步:安装 1.1 查找(查看)mongo相应的版本 [root@localhost ~]# docker search mongo INDEX NAME DESCRIPTION STARS OFF ...
- Adnc如何本地调试 - 一个轻量级的.Net Core微服务开发框架
前言 Adnc是一个轻量级的.Net Core微服务开发框架,同样适用于单体架构系统的开发. 如果只是想本地调试,只需要安装必备软件,必备软件除开发工具外,其它软件建议大家都使用`do ...
- mongo创建用户
use dwb db.createUser( { "user" : "username", "pwd& ...
随机推荐
- Python视频教程免费分享(2020年最新版)
为期92天的全套Python视频教程免费分享,总计57G! 里面还有我的笔记,希望对大家有帮助哈~ 1-32天 … … 65-92天 百度云网盘: 链接: https://pan.baidu.com/ ...
- 【leetcode算法-简单】26. 删除排序数组中的重复项
[题目描述] 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完 ...
- WCF-简单 配置文件
一.服务端配置文件 主要包括 1.services 配置服务节点 <!--name 指的是契约实现类--> <service name="WcfLib.User2" ...
- Python 实现把两个排好序的的列表合并成一个排序列表
列表是升序的 # -*- coding: utf-8 -*- # 合并两个排序的数组 def merge_list(a, b): if not a: return b if not b: return ...
- 5年经验Java程序员面试20天
写在前面 今天分享的是一位5年工作经验的Java工程师在帝都的面试经验总结,看看这些互联网公司都爱问些什么题,希望对大家的面试有指导意义. 从事Java开发也有5年经验了,4月初自己的开启面试经历 ...
- 洛谷 P1019单词接龙
看吧,多简单啊,没有人受伤的世界完成了. ...
- 使用 jsvc 启动tomcat(使用普通用户运行)
使用 jsvc 启动tomcat(使用普通用户运行) jsvc简介 在生产中,tomcat应该以daemon的模式运行,而且如果需要以普通用户的身份启动tomcat,那么就不能使用1024以下的端口, ...
- hadoop2.7.7 分布式集群安装与配置
环境准备 服务器四台: 系统信息 角色 hostname IP地址 Centos7.4 Mster hadoop-master-001 10.0.15.100 Centos7.4 Slave hado ...
- (三)第一个 Hibernate项目
1.创建java工程,并导入hibernate所需要的jar包 2.通过IDE构建一个基础的Hibernate工程. 产生 hibernate.cfg.xml的框架总配置文件. H ...
- (四)Decorator设计模式解决GET/POST请求的乱码问题(转)
一.Decorator设计模式 1.1.Decorator设计模式介绍 当某个对象的方法不适应业务需求时,通常有2种方式可以对方法进行增强: 编写子类,覆盖需增强的方法. 使用Decorator设计模 ...