首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将mongo输出直接输出到文件

将mongo输出直接输出到文件
EN

Stack Overflow用户
提问于 2016-09-15 04:06:38
回答 2查看 853关注 0票数 0

我有一个为我们的服务器自动重建mongo数据库的脚本:

代码语言:javascript
运行
复制
#!/bin/sh

mongo local:host 127.0.0.1 mongodb-create-ourdatabase.js > validate.txt

mongoimport --host 127.0.0.1 --db ourdatabase --collection ourUser --file create-ourUser.js > validate.txt

创建数据库时,第一行的输出将写入文件,而创建集合ourUser的第二行的输出将输出到屏幕。

我遗漏了什么?

EN

回答 2

Stack Overflow用户

发布于 2016-09-15 04:12:58

首先,这两个调用都创建一个空的新validate.txt文件。所以第二次调用会破坏第一次调用的结果。我怀疑这是否是您想要的,因此您应该通过>>更改第二个>以附加到您的日志文件中。

其次,可执行文件通过两个屏幕通道发出输出:标准输出(也称为stdout,用于正常输出、结果)和标准错误(又称为stderr,用于警告和错误)。通过查看输出不可能知道哪个流是目标。

要合并两个流并获取所有流程输出,您必须使用2&>1 (dup & close stderr To 1=stdout)通过管道将stderr传输到stdout,以便能够重定向

代码语言:javascript
运行
复制
mongo local:host 127.0.0.1 mongodb-create-ourdatabase.js 2&>1 > validate.txt
mongoimport --host 127.0.0.1 --db ourdatabase --collection ourUser --file create-ourUser.js 2&>1 >> validate.txt
票数 0
EN

Stack Overflow用户

发布于 2016-09-15 21:01:15

感谢Jean-Francois的回复,不幸的是,这没有起作用,但很接近。起作用的是:

代码语言:javascript
运行
复制
#!/bin/sh

mongo localhost:27017 mongodb-create-our-database.js 2>&1 > validate.txt

mongoimport --host 127.0.0.1 --db ourdatabase --collection ourUser --file create-ourUser.js >> validate.txt 2>&1

使用2&>1让脚本查找文件2,我找到了这个很好的解释:

Scroll down to 1st answer

这对我很有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39498816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档