如何通过命令查找mongodb数据和日志文件位置?
如下面的SQL server命令。
SELECT * FROM sys.database_files
答案 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