1、mongoexport命令主要参数
mongoexport命令用于数据的导出,导出的文件格式默认为JSON格式。当然也可以指定特定的文件格式如CSV和txt
mongoexport --help
#列出常用的参数 说明: -h:--host,数据库宿主机的IP,后面常接--port参数一起,默认是27017 -u:--username,数据库用户名 -p:--password,数据库密码 -d:--db,数据库名字; -c:--collection,数据表,集合的名字 -f:--fields,导出的列名,需要提取的列名用逗号分隔 -q:--query,导出数据的过滤条件
-o: --out,指定文件名 --csv:导出格式为csv
2、导出Excel CSV示例
mongo -uadmin -p\'Lgu>6B34pZnv*iU\' 172.17.2.174:27017/userRecord #指定用户名密码和库登录
> db.userRecord.find().count(); #统计多少条数据,或直接省略find:db.userRecord.count()
> db.userRecord.find(); #查看数据,默认显示20条
> show collections; #查看集合列表
将集合userRecord所有字段导出数据为Excel CSV格式
mongoexport -h172.17.2.174 --port27017 -u admin -p\'Lgu>6B34pZnv*iU\' -d userRecord -c userRecord -f _id,accessTime,accessType,interfaceName,tokenInfo,userIp,userName --csv -o /home/bakup/userRecord.csv
3、导出txt示例
将集合userRecord所有字段导出数据为txt格式
mongoexport -h172.17.2.174 --port 27017 -u admin -p\'Lgu>6B34pZnv*iU\' -d userRecord -c userRecord -f _id,accessTime,accessType,interfaceName,tokenInfo,userIp,userName -o /home/bakup/userRecord.txt
4、使用mail以附件形式发送邮件
4.1 编写/etc/mail.rc,添加邮箱server端
vim /etc/mail.rc #最后一行添加
set bsdcompat ##### set example for 163 ###### set from=1361125xxxx@163.com smtp=smtp.163.com set smtp-auth-user=1361125xxxx smtp-auth-password=wxxxxx smtp-auth=login
4.2 编写shell,加入定时任务
#!/bin/bash file=userRecord.csv HOST=172.17.2.174 PORT=27017 user="admin" password="Lgu>6B34pZnv*iU" dbname="userRecord" collection="userRecord" find /home/bakup/ -type f -name "${file}" -mtime +3 -exec rm -f {} \; [ -f /home/bakup/${file} ] || mongoexport -h $HOST --port $PORT -u$user -p $password -d $dbname -c $collection -f _id,accessTime,accessType,interfaceName,tokenInfo,userIp,userName --csv -o /home/bakup/$file sleep 2 [ -s /home/bakup/$file ] && echo -e "\033[36m $file is exist\033[0m" || echo -e "\033[31m $file is not exist\033[0m" echo "`date +%F-周%w-%H:%M:%S`" >/server/scripts/date.txt for i in `cat /server/scripts/mail.txt` do mail -s "用户访问记录" -a /home/bakup/$file $i < /server/scripts/date.txt sleep 1 echo -e "\033[32m 邮件发送中@$i......\033[0m" done