每个月执行一次任务,保存90天的mongo日志数据
2024-09-01 16:33:36
用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);
});
}
最新文章
- Xcode插件安装 错选了Skip Bundle解决办法
- 《Visual C++并行编程实战》译者序
- UE4.7的IOS发布和调试的相关问题
- androidstudio构建(或导入)工程(不用gradle)
- 网络流系列算法总结(bzoj 3438 1061)
- Intersection of Two Linked Lists(java)
- 正则表达式,提取html标签的属性值
- SpringBoot+MyBatis+MySQL读写分离
- Meta标签详解
- OpenCV Mat与UIImage之间的转换
- JavaScript之this,call,apply
- 【python基础】os.path模块常用方法详解
- SpringJMS解析-JmsTemplate
- k8s实战读书笔记
- redis学习笔记——主从同步(复制)
- HDU 4586 Play the Dice(数学期望)
- Android - Telephony API 1.6
- SQL 随手记
- .NET Core环境安装
- Java并发编程(十一)实例封闭