用mongo 的dump 和 restore实现

shell版

#!/bin/bash
mongodump --host 127.0.0.1 --port -d lewifi -c auditOrigData -q {time:{\$gt:}} -o ~/auditmongologchange
mongo <<EOF
use lewifi
db.auditOrigData.renameCollection('auditOrigData_back')
EOF
echo "restore"
mongorestore -h 127.0.0.1 --port --db lewifi ~/auditmongologchange/lewifi/
rm -rf ~/auditmongologchange

nodejs版 主要代码

Task.prototype.backandChangeauditOrigData = function(){
var starttoday=new Date();
var todayyymmdd=tool.getYYMMDD(starttoday);
starttoday.setDate(starttoday.getDate()-180);
var datenum=tool.getDateCurTs(starttoday);
var yymmdd=tool.getYYMMDD(starttoday);
var dumpcommand='mongodump --host 127.0.0.1 --port 27017 -d lewifi -c auditOrigData -q {time:{\\$gt:'+datenum+'}} -o /Users/cdpmac/auditmongologchange';
auditApi.execMonoOperaCommand(dumpcommand,function(dumperr,dumpout){
console.log('dump\n'+dumperr+'\n'+dumpout);
if(!dumperr){
shenjiauditlogTestCollection.rename('auditOrigData'+yymmdd+'-'+todayyymmdd,function(renameerr,renameinfo){
console.log('rename\n'+renameerr+'\n'+JSON.stringify(renameinfo));
var restorecommand='mongorestore -h 127.0.0.1 --port 27017 --db lewifi /Users/cdpmac/auditmongologchange/lewifi/';
auditApi.execMonoOperaCommand(restorecommand,function(reserr,resout){
console.log('restore+\n'+reserr+'\n'+resout);
auditApi.execMonoOperaCommand('rm -rf /Users/cdpmac/auditmongologchange',function(rmerr,rmout){
})
}
)
})
}
});
}
execMonoOperaCommand内容
var exec = require('child_process').exec;

function execMonoOperaCommand(command, callback) {
child = exec(command, function(error, stdout, stderr) {
sys.print('error: \n' + error+"\n");
sys.print('stdout: \n' + stdout+"\n");
sys.print('stderr: \n' + stderr+"\n");
callback(error,stdout);
});
}
 

每个月执行一次任务,保存90天的mongo日志数据的更多相关文章

  1. spring cloud spring boot JPA 克隆对象修改属性后 无法正常的执行save方法进行保存或者更新

    2019-12-1220:34:58 spring cloud spring boot JPA 克隆对象修改属性后 无法正常的执行save方法进行保存或者更新 未解决

  2. 使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

  3. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)

    CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ...

  4. MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

    MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 &l ...

  5. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作

    http://www.cnblogs.com/wgp13x/p/4934521.html 内容一样,样式好的版本. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据 ...

  6. [Android] Android GreenDao 保存 JavaBean 或者List <JavaBean>类型数据

    Android GreenDao 保存 JavaBean 或者List <JavaBean>类型数据 简介 数据库存储数据基本上每个APP都有用到,GreenDAO 是一个将对象映射到 S ...

  7. c# Process cmd 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据

    c# Process 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据 直接贴代码 前提:mysql5.7 vs2017 ...

  8. “必须执行Init_Clk函数,才能采集到二氧化碳接口485数据的问题”的解决

    这个问题困扰了我很长一段时间,而且如果这个问题不解决,就有一个无法调和的矛盾:执行Init_Clk函数,能采集到二氧化碳接口485数据,但是功耗大:不执行Init_Clk函数,不能采集到二氧化碳接口4 ...

  9. 【转】android笔记--保存和恢复activity的状态数据

    一般来说, 调用onPause()和onStop()方法后的activity实例仍然存在于内存中, activity的所有信息和状态数据不会消失, 当activity重新回到前台之后, 所有的改变都会 ...

随机推荐

  1. 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?

    学习好累,打游戏好爽  我不爱学习 认真勤勉投入学习 精心准备,刻苦学习 我的flag   作为大学生,需要了解今后职场社会,对职业方向有了进一步的认识.社会对于人才的要求在某些方面都是不谋而合的,比 ...

  2. Glob 模式

    Glob 是什么 glob 是一种文件匹配模式,全称 global,它起源于 Unix 的 bash shell 中,比如在 linux 中常用的 mv *.txt tmp/ 中,*.txt 就使用到 ...

  3. SQL 一个【OR】属性给你带来了怎样的麻烦

    关于 数据库  or   的用法,就不说了     讲讲OR对数据库性能有多大的杀伤力,以后线上的项目如果是数据量很大的表,一定不要用OR来查询 今天在工作的时候,同事遇到了SQL优化的问题,让我帮忙 ...

  4. mybatis-关于<update>的日常记录

    !注意:,一定要有 <update id="updateByPrimaryKeySelective" parameterType="com.dhht.model.o ...

  5. 自己做的板子,电脑识别不出下载口(micro-usb),程序无法烧入

    前几天画了一块cortex-A5的底板,出现一个问题,就是通过micro-usb与电脑连接之后,电脑无法识别出来,这就导致程序无法通过micro-usb烧入进去,经过仔细检查硬件,发现第一,元器件都没 ...

  6. ORM表之间高级设计

    ORM表之间高级设计 一.表的继承 # db_test1 # 一.基表 # Model类的内部配置Meta类要设置abstract=True, # 这样的Model类就是用来作为基表 # 多表:Boo ...

  7. python 多维数组 字典

    #多维数组list = [[87,57,98],[34,87,90]]print(list[1][0]) l = [[87,57,98],[34,87,[90,99,67]]]print(l[1][2 ...

  8. PAT甲级——1108.Finding Average (20分)

    The basic task is simple: given N real numbers, you are supposed to calculate their average. But wha ...

  9. 1.Jenkins基本安装及插件离线安装

    Jenkins基本安装 Jenkins官方地址:https://jenkins.io/zh/,下载最新版本,需要依赖对应的jdk版本才可以正常运行. dockerfile文件构建docker镜像 FR ...

  10. RDD(五)——action

    reduce(func) 通过func函数聚集RDD中的所有元素并得到最终的结果,先聚合分区内数据,再聚合分区间数据.Func函数决定了聚合的方式. def main(args: Array[Stri ...