每个月执行一次任务,保存90天的mongo日志数据
用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日志数据的更多相关文章
- spring cloud spring boot JPA 克隆对象修改属性后 无法正常的执行save方法进行保存或者更新
		2019-12-1220:34:58 spring cloud spring boot JPA 克隆对象修改属性后 无法正常的执行save方法进行保存或者更新 未解决 
- 使用Hive或Impala执行SQL语句,对存储在HBase中的数据操作
		CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ... 
- 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)
		CSSDesk body { background-color: #2574b0; } /*! zybuluo */ article,aside,details,figcaption,figure,f ... 
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
		MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 &l ... 
- 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作
		http://www.cnblogs.com/wgp13x/p/4934521.html 内容一样,样式好的版本. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据 ... 
- [Android] Android GreenDao 保存 JavaBean 或者List <JavaBean>类型数据
		Android GreenDao 保存 JavaBean 或者List <JavaBean>类型数据 简介 数据库存储数据基本上每个APP都有用到,GreenDAO 是一个将对象映射到 S ... 
- c# Process cmd 执行完回调 Proc_OutputDataReceived  mysql mysqldump mysql source备份还原数据
		c# Process 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据 直接贴代码 前提:mysql5.7 vs2017 ... 
- “必须执行Init_Clk函数,才能采集到二氧化碳接口485数据的问题”的解决
		这个问题困扰了我很长一段时间,而且如果这个问题不解决,就有一个无法调和的矛盾:执行Init_Clk函数,能采集到二氧化碳接口485数据,但是功耗大:不执行Init_Clk函数,不能采集到二氧化碳接口4 ... 
- 【转】android笔记--保存和恢复activity的状态数据
		一般来说, 调用onPause()和onStop()方法后的activity实例仍然存在于内存中, activity的所有信息和状态数据不会消失, 当activity重新回到前台之后, 所有的改变都会 ... 
随机推荐
- JavaScript学习总结(七)
			这一讲我们来学习DOM编程(十分重要),有了DOM编程,我们就可以操作任意的HTML元素了. DOM,文档对象模型 一个html页面被浏览器加载的时候,浏览器就会对整个html页面上的所有标签都会创建 ... 
- [CF百场计划]#3 Educational Codeforces Round 82 (Rated for Div. 2)
			A. Erasing Zeroes Description You are given a string \(s\). Each character is either 0 or 1. You wan ... 
- zookeeper以及集群的搭建
			今天我来写一写zookeeper集群的搭建流程 1.zookeeper的搭建不难,难的是对他的理解以及良好的使用.单机版的zookeeper只需要解压后直接命令 启动即可 解压zookeeper,ta ... 
- caffe不同lr_policy参数设置方法
			fixed 参数: base_lr: 0.01 lr_policy: "fixed" max_iter: 400000 step 参数: base_lr: 0.01 lr_poli ... 
- tif图片压缩
			tif图片在ImageIo.read获取时,返回为空,导致无法使用,百度了很久,很多人说jai可以,便去看了下,总结如下: public static void CompressPic(String ... 
- 关于live2D的使用
			<script src="https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidge ... 
- 小白学习之pytorch框架(1)-torch.nn.Module+squeeze(unsqueeze)
			我学习pytorch框架不是从框架开始,从代码中看不懂的pytorch代码开始的 可能由于是小白的原因,个人不喜欢一些一下子粘贴老多行代码的博主或者一些弄了一堆概念,导致我更迷惑还增加了畏惧的情绪(个 ... 
- 六、Shell脚本高级编程实战第六部
			一.写一个start_nginx脚本,当启动.停止.重启时利用系统函数模拟实现系统脚本启动的特殊颜色效果 (用if实现) #!/bin/sh. /etc/init.d/functions if [ $ ... 
- JavaScript 的 URL 对象是什么?
			如果我们自己编写从URL中分析和提取元素的代码,那么有可能会比较痛苦和麻烦.程序员作为这个社会中最“懒”的群体之一,无休止的重复造轮子必然是令人难以容忍的,所以大多数浏览器的标准库中都已经内置了URL ... 
- Opencv笔记(十六)——认识轮廓
			什么是轮廓? 轮廓可以简单认为成连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.轮廓在形状分析和物体的检测和识别中很有用.谈起轮廓不免想到边缘,它们确实很像.简单的说,轮廓是连续的,边缘并 ... 
