Mongodump 存档记录数

Mongodump archive record count

我正在研究需要防弹的文档备份解决方案。我每周 运行 我的备份,并且我能够在实际转储之前进行试运行以确定我要转储多少文档。所以,我有一个目标数字。

问题是,当我实际上 运行 mongo 转储时,它将所有输出写入控制台,而不是标准输出。所以我无法将输出捕获到一个变量,找到它转储的文档数量,并与我的目标数量进行比较。

我也看过,但没有看到任何方法可以使用 mongorestore 在事后获取文件中的记录数。

不,wc -l 不起作用。

所以,这是我在 mongo 转储期间看到的写入控制台的内容:


2022-03-03T22:25:15.069+0000    writing mydb.records to archive '/opt/weekly/records_2022-02-13'
2022-03-03T22:25:17.529+0000    mydb.records  101
2022-03-03T22:25:22.510+0000    mydb.records  1675
2022-03-03T22:25:22.513+0000    done dumping mydb.records (1675 documents)

以上是控制台,我无法从我的脚本中捕获它(即 varname=$(mongodumpcommandhere) ),我也无法将输出重定向到 .log文件,然后清除内容。

所以,有 mongo 专家知道我如何做我想做的事吗?当然,我已经在检查 mongodump 命令的退出状态,只是想多走一步,并把文档计数也排成一行。

我可以安装一个空白数据库并加载转储并对文档进行计数,但这似乎有点远,只是为了获得转储中的文档数量。寻找不那么暴力的东西。

哦,这是一个处理所有逻辑的 bash 脚本。

mongodumpcommandhere 可能正在写入标准错误而不是标准输出。如果是的话

 varname=$(mongodumpcommandhere 2>&1)

会起作用。如果它不起作用,则可能意味着该命令正在直接写入终端。这是一件坏事,但有办法捕捉它。