linux下mongodb定时备份指定的集合
目标:把一台linux机上mongodb的数据定时备份到另一台机上:
过程:
一开始打算使用mongoexport和mongoimport,但是总是会报“\x00”字符串不能识别的问题,后来就改成了mongodump和mongorestart,成功实现目标。
(\x00的问题还在寻找解决办法);
脚本代码:
#获取系统时间并转换成毫秒数
current=`date "+%Y-%m-%d %H:%M:%S"`;
timeStamp=`date -d "$current" +%s`;
#当前时间的毫秒数
currentTimeStamp=$((timeStamp*1000));
#一个小时前这个时候的毫秒数
yestodayTimeStamp=$((currentTimeStamp-43*60*60*1000));
echo $current;
echo $timeStamp;
echo $currentTimeStamp;
echo $yestodayTimeStamp;
echo "File not exist!dump `date "+%Y-%m-%d %H:%M:%S"` $currentTimeStamp $yestodayTimeStamp" >>/home/admin/testlog.log
#备份新产生表
/home/admin/mongodb305/mongodb305/bin/mongodump --port 47017 -u admin -p admin -d admin -c alarm -q '{"recTime":{$gte:'$yestodayTimeStamp',$lt:'$currentTimeStamp'}}' -o /home/admin/dumptest;
/home/admin/mongodb305/mongodb305/bin/mongodump --port 47017 -u admin -p admin -d admin -c filtering_alarm -q '{"recTime":{$gte:'$yestodayTimeStamp',$lt:'$currentTimeStamp'}}' -o /home/admin/dumptest;
/home/admin/mongodb305/mongodb305/bin/mongodump --port 47017 -u admin -p admin -d admin -c combine_alarm -q '{"recTime":{$gte:'$yestodayTimeStamp',$lt:'$currentTimeStamp'}}' -o /home/admin/dumptest;
/home/admin/mongodb305/mongodb305/bin/mongodump --port 47017 -u admin -p admin -d admin -c processed_alarm -q '{"recTime":{$gte:'$yestodayTimeStamp',$lt:'$currentTimeStamp'}}' -o /home/admin/dumptest
/home/admin/mongodb305/mongodb305/bin/mongorestore -h 192.168.0.213 --port 27017 -u admin -p admin -d admin -c alarm --keepIndexVersion --maintainInsertionOrder /home/admin/dumptest/admin/alarm.bson;
/home/admin/mongodb305/mongodb305/bin/mongorestore -h 192.168.0.213 --port 27017 -u admin -p admin -d admin -c filtering_alarm --keepIndexVersion --maintainInsertionOrder /home/admin/dumptest/admin/filtering_alarm.bson;
/home/admin/mongodb305/mongodb305/bin/mongorestore -h 192.168.0.213 --port 27017 -u admin -p admin -d admin -c combine_alarm --keepIndexVersion --maintainInsertionOrder /home/admin/dumptest/admin/combine_alarm.bson;
/home/admin/mongodb305/mongodb305/bin/mongorestore -h 192.168.0.213 --port 27017 -u admin -p admin -d admin -c processed_alarm --keepIndexVersion --maintainInsertionOrder /home/admin/dumptest/admin/processed_alarm.bson
crontab定时任务代码:
39 10 * * * root /home/admin/dumptest2.sh
备份之后根据条件查看两个mongodb中的数据一致,备份成功。
linux下mongodb定时备份指定的集合的更多相关文章
- linux下mysql定时备份数据库
linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈 一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...
- Linux下oracle定时备份
1. 设置数据库空表可导出(oracel11g) 用PL/SQL登录数据库(或者其他工具) 执行: select 'alter table '||table_name||' allocate exte ...
- Linux下mysql定时备份及恢复
备份 1.数据库定时备份工作脚本:(日期时间作为名称的压缩文件,解压开是sql脚本) /root/backup/script/backup_mysql.sh 2.备份输出路径: /root/backu ...
- linux下mysql定时备份
1. 在服务器上建立备份文件的存放文件夹 sudo mkdir /usr/local/dbbackup 2. 编写备份脚本 vi dbbackup.sh 在里面编写如下内容 mysqldump -ur ...
- linux下mysql定时备份,数据保存周期一周
以下脚本来自网络,版权归原作者所有(推荐放在夜间自动备份,用cron制定计划任务) crontab -e 0 3 * * * /var/erp/data/mysql_backup.sh #!/bin/ ...
- Linux中mongodb定时远程备份
下载mongodb https://www.cnblogs.com/tartis/p/5291580.html mongodb定时备份文档 虚拟机报错要改BIOS 虚拟技术开启 进入root账户 s ...
- Linux下MongoDB服务安装
Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...
- cron Linux下的定时执行工具
说明:测试平台 Ubuntu 16.04.4 LTS cron是一个Linux下的定时执行工具,可以在无需人工干预的情况下运行作业.所以,在Linux中,周期性执行的任务一般由cron这个守护进程来 ...
- Linux下mongodb安装及数据导入导出教程
Linux下mongodb安装及数据导入导出教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 一.Linux下mongodb安装的一般步骤 1 ...
随机推荐
- TNF-mutithread 编译过程记录
地址 https://github.com/msng4t/TNF-mutithread 地址 https://github.com/msng4t/TNF 目的:想要寻找一套性能,可读性相对较好的Soc ...
- Spring MVC 属性文件读取注入到静态字段
目录(?)[-] servlet-contextxml configproperties 示例属性 ConfigInfo 对应的配置bean 使用 在项目中,有些参数需要配置到属性文件xxx.pr ...
- jsoup的elements类
jsoup的Elements类 一.简介 该类是位于select包下,直接继承自Object,所有实现的接口有Cloneable, Iterable<Element>, Collectio ...
- hdu1712 ACboy needs your help 分组背包
最基础的分组背包~ #include <iostream> #include <cstdio> #include <cstdlib> #include <cs ...
- UVa 699 下落的树叶
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- activiti工作流数据库表详细介绍 (23张表)
Activiti的后台是有数据库的支持,所有的表的表名都以ACT_开头,表名的第二部分是用来表示表的用途的两个字母标识. 用途也和服务的API对应. ACT_RE_*: 'RE'表示repositor ...
- jQuery中过滤选择器first和first-child的区别
:first过滤器只匹配第一个子元素,而:first-child过滤器将为每个父元素匹配个子元素. 对于下面html代码: <ul> <li>John</li> & ...
- 获取Android状态栏高度的屡试不爽的方法
文本转载于:http://blog.csdn.net/yinkai1205/article/details/8638864 如下代码所示: [java] view plaincopy private ...
- 论文阅读之:Is Faster R-CNN Doing Well for Pedestrian Detection?
Is Faster R-CNN Doing Well for Pedestrian Detection? ECCV 2016 Liliang Zhang & Kaiming He 原文链接 ...
- c# webbrowser 错误捕获
private void Form1_Load(object sender, EventArgs e) { webBrowser1.Url = new Uri("about:blank&qu ...