linux中mongo的导出数据,Linux上从mongoDB中定时导出数据脚本

目标:编写一个shell脚本,以便能够将mongoDb中的数据导出成为csv格式的文件。 要求: 1. 为了避免导出巨量数据,仅需要过滤出当月数据和上个月的数据即可。 2. 由于当天的数据是不完整的,所以需要排除当天的数据 以下是一个例子 -------------------------------------------------------------------------- #!/bin/bash #创建保存目录 mypath=micAnalyDir/`date +%Y/%m%d` mkdir -p $mypath

#计算过滤时间 baseDate=`date --date '1 months ago' +'%m/01/%Y'` echo $baseDate declare -i baseTime baseTime=$((`date --date "$baseDate" +"%s"` * 1000))

#导出指定数据表中的数据 function exportData() {      exportCmd="/kingdee/mongodb/bin/mongoexport --csv"      if [ $# -gt 3 ]; then #这里要注意baseTime和endTime不能加引号,否则会报错             $exportCmd -d $1 -c $2 -f $3 -q \   "{\"$4\":{\"\$gte\":{\"\$date\":$baseTime}, \             \"\$lt\":{\"\$date\":$endTime}}}" -o $mypath/$2.csv      else             $exportCmd -d $1 -c $2 -f $3 -o $mypath/$2.csv      fi }

#导出第一张表的所有数据 echo export data from $baseDate echo 'export ossDev.T_User' fields="_id,email,registerDate,photoId" exportData "ossDev" "T_User" $fields

#导出第二张表的sendTime为当月和上月的数据 echo 'export snsDev.T_Comment' fields="_id,del,from,mbId,mbOwner,nwId,ownerId,sendTime" exportData "snsDev" "T_Comment" $fields "sendTime" ---------------------------------------------------------------------------- 保存为.sh文件后使用 chmod +x 将该脚本设置为可执行,然后使用crontab命令将脚本加到定时任务当中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值