如何通过命令查找mongodb数据和日志文件位置?

时间:2018-01-29 18:36:34

标签: mongodb

如何通过命令查找mongodb数据和日志文件位置?

如下面的SQL server命令。

SELECT * FROM sys.database_files

2 个答案:

答案 0 :(得分:3)

最简单的方法可能是使用getCmdLineOpts命令:

db.getSiblingDB("admin").runCommand({getCmdLineOpts:1})

此Mongo Shell命令将首先切换到admin数据库,然后执行getCmdLineOpts命令。另一种选择是shell包装器:

db.serverCmdLineOpts()

这些将返回已解析的命令行选项,该选项应包含正在使用的数据目录和日志路径。

{
        "argv" : [
                "C:\\****\\3.4.10\\bin\\mongod.exe",
                "--dbpath",
                "C:\\****\\data",
                "--port",
                "27017",
                "--logpath",
                "C:\\****\\data\\mongod.log",
                "--bind_ip",
                "0.0.0.0"
        ],
        "parsed" : {
                "net" : {
                        "bindIp" : "0.0.0.0",
                        "port" : 27017
                },
                "storage" : {
                        "dbPath" : "C:\\****\\data"
                },
                "systemLog" : {
                        "destination" : "file",
                        "path" : "C:\\****\\data\\mongod.log"
                }
        },
        "ok" : 1
}

注意:我对路径进行了模糊处理,它们通常不包含****

您可以看到它提供了原始值以及解析的值。如果在命令行上指定了命令行选项和配置文件选项,则将显示进程使用的有效值。请注意,several extra options可以影响数据的存储位置,但这样可以让您快速上手。

如果您想在不使用Mongo Shell的情况下了解此信息,则必须grep配置文件或查看正在运行的进程的命令行选项,或者两者兼而有之。

答案 1 :(得分:1)

您也可以在mongoCLI中查看日志

列出所有日志

> show logs
global
startupWarnings

显示日志内容

> show log global
2018-01-30T09:14:10.305+0530 I CONTROL  [initandlisten] MongoDB starting : pid=778 port=27017 dbpath=/var/lib/mongodb 64-bit host=ubuntu
2018-01-30T09:14:10.305+0530 I CONTROL  [initandlisten] db version v3.6.1
2018-01-30T09:14:10.305+0530 I CONTROL  [initandlisten] git version: 025d4f4fe61efd1fb6f0005be20cb45a004093d1

数据路径将打印在全局日志行1上,在我的机器中打印为dbpath=/var/lib/mongodb